• Java的Annotation标签


    只需要简单的使用Java的Annotation标签即可将标准的Java方法发布成Web Service,但不是所有的Java类都可以发布成Web Service。Java类若要成为一个实现了Web Service的bean,它需要遵循下边这些原则:

    •  这个类必须是public类

    •  这些类不能是final的或者abstract

    •  这个类必须有一个公共的默认构造函数

    •  这个类绝对不能有finalize()方法

      Annotation 1@WebService(name="Example", targetNamespace="http://www.jsoso.com/wstest", serviceName="Example")
      @WebService标签主要将类暴露为WebService,其中targetNamespace属性定义了自己的命名空间,serviceName则定义了< definitions >标签和<service>标签的name属性。

      Annotation 2:@SOAPBinding(style=SOAPBinding.Style.RPC)
      @SOAPBinding标签定义了WSDL文档中SOAP的消息协议,其中style属性对应SOAP的文档类型,可选的有RPC和DOCUMENT

      Annotation 3:@WebMethod(operationName="toSayHello",action="sayHello",exclude=false)
      @WebMethod定义Web Service运作的方法,
      属性action 对应操作的活动 ,如<soap:operation soapAction="sayHello" />
      属性operationName匹配的wsdl:operation 的名称,如<operation name="toSayHello" parameterOrder="userName">
      属性exclude 用于阻止将某一继承方法公开为web服务,默认为false

      Annotation 4:@WebResult(name="returnWord")
      @ WebResult定义方法返回值得名称,如<part name="returnWord" type="xsd:string" />

      Annotation 5:@WebParam(partName="person", mode=Mode.IN
      @WebParam定义方法的参数名称,如<part name="person" type="tns:person" />,其中mode属性表示参数的流向,可选值有IN / OUT / INOUT

    • package org.jsoso.jws.server;  
        
      import java.util.ArrayList;  
      import javax.jws.WebMethod;  
      import javax.jws.WebParam;  
      import javax.jws.WebResult;  
      import javax.jws.WebService;  
      import javax.jws.WebParam.Mode;  
      import javax.jws.soap.SOAPBinding;  
      /  
       * 提供WebService服务的类  
       */  
      @WebService(name="Example", targetNamespace="http://www.jsoso.com/wstest", serviceName="Example")  
      @SOAPBinding(style=SOAPBinding.Style.RPC)  
      public class Example {  
          private ArrayList<Person> persons = new ArrayList<Person>();;  
          /** 
           *  
           * 返回一个字符串 
           * @param userName 
           * @return 
           */  
          @WebMethod(operationName="toSayHello",action="sayHello",exclude=false)  
          @WebResult(name="returnWord")//自定义该方法返回值在WSDL中相关的描述  
          public String sayHello(@WebParam(name="userName")String userName) {  
              return "Hello:" + userName;  
          }  
        
          /** 
           * web services 方法的返回值与参数的类型不能为接口 
           * @param person 
           * @return 
           * @throws HelloException 
           */  
          @WebMethod(operationName="sayHello", action="sayHello")  
          @WebResult(partName="personList")  
          public Person[] sayHello(@WebParam(partName="person", mode=Mode.IN)Person person,   
                  String userName) throws HelloException {  
              if (person == null || person.getName() == null) {  
                  throw new HelloException("说hello出错,对像为空。。");  
              }  
              System.out.println(person.getName() + " 对 " + userName + " 说:Hello,我今年" + person.getAge() + "岁");  
              persons.add(person);  
              return persons.toArray(new Person[0]);  
          }  
      }
  • 相关阅读:
    metasploit模块功能介绍
    虚拟机端口映射
    linux 双网卡实现
    斯坦福第三课:线性代数回顾(Linear Algebra Review)
    斯坦福第二课:单变量线性回归(Linear Regression with One Variable)
    斯坦福第一课:引言(Introduction)
    机器学习的个人见解----深夜总结
    史上最强机器学习资料------来自个人心血总结-----5星级
    如何学习新的知识----心血总结
    21个必知数据科学面试题和答案
  • 原文地址:https://www.cnblogs.com/samwang88/p/6268724.html
Copyright © 2020-2023  润新知