@WebService
此注示用来标明此java类为某个WebService的实现类或者标明此java接口定义了某个WebService的接口。@WebService有六个参数可以用来配置这个WebService的定义:
endpointInterface:定义服务抽象 Web Service 协定的服务端点接口的完整名称,如果注解通过 endpointInterface 属性引用了某个 SEI,那么还必须使用@webservice注解来注解该SEI。
name:默认的port名为"实现类名+Port",binding名为"实现类名+PortBinding",通过指定name的值来替换实现类名
portName:可以完成替换默认port名和binding名(portName+Binding)
targetNamespace:指定targetNamespace值,默认的值为"http://包名/",可以通过此变量指定一个自定义的targetNamespace值
serviceName:当映射到 WSDL 1.1 时,此名称被用作 wsdl:service 的名称和wsdl:definitions的名称
wsdlLocation:指向一个预定义的wsdl的文件,替代自动生成的wsdl文件。
@WebMethod
仅支持在使用@webservice注解来注解的类上使用@WebMethod注解,如果当前类通过 endpointInterface 属性引用了某个 SEI,就必须把这个注解写在SEI的对应方法上才能生效。
action:指定此方法对应的action,对应到soap:operation的soapAction的值
exclude:将某一方法标记为不作为一个 web 方法公开
operationName:指定方法对应的operation
@Oneway
注解将一个方法表示为只有输入消息而没有输出消息的 Web Service 单向操作,即没有output元素。
@WebParam
注解用于定制从单个参数至 Web Service 消息部件(message元素)和 XML 元素的映射。
name:如果设置了,那么在schema的类型定义中就不会使用arg0/arg1这样的变量而是用我们设置的name
mode:
WebParam.Mode.IN—(default) parameter is passed from client to service (in request).
WebParam.Mode.INOUT—parameter is passed from client to service (request) and from the service back to the client (in reply).
WebParam.Mode.OUT—parameter is passed from service back to the client (in reply).
@WebServiceClient
此类用来注解生成的服务接口,例如用wsimport工具生成的。
name:服务的本地名称。
targetNamespace:服务的名称空间。
wsdlLocation:服务 WSDL 文档的位置,值取决于生成服务时采用的是本地路径还是url。
@SOAPBinding
指定 Web Service 到 SOAP 消息协议的映射关系,可以参考这篇文章
parameterStyle:确定方法参数是否表示整个消息正文,或者参数是否是包装在以操作命名的顶层元素中的元素,可以是bare和wrapped
style:定义发送到 Web Service 的消息和从 Web Service 发送的消息的编码样式,可以是document和rpc
use:义发送到 Web Service 的消息和从 Web Service 发送的消息的格式样式,可以是literal和encoded,但是java不支持encoded
@WebResult
注解用于定制从返回值至 WSDL 部件或 XML 元素的映射。将此注解应用于客户机或服务器服务端点接口(SEI)上的方法,或者应用于 JavaBeans 端点的服务器端点实现类。
name:当返回值列示在 WSDL 文件中并且在连接上的消息中找到该返回值时,指定该返回值的名称。对于 RPC 绑定,这是用于表示返回值的 wsdl:part属性的名称。对于文档绑定,-name参数是用于表示返回值的 XML 元素的局部名。对于 RPC 和 DOCUMENT/WRAPPED 绑定,缺省值为 return。对于 DOCUMENT/BARE 绑定,缺省值为方法名 + Response。(字符串)
targetNamespace:指定返回值的 XML 名称空间。仅当操作类型为 RPC 或者操作是文档类型并且参数类型为 BARE 时才使用此参数。(字符串)
header:指定头中是否附带结果。缺省值为false。(布尔值)
partName:指定 RPC 或 DOCUMENT/BARE 操作的结果的部件名称。缺省值为@WebResult.name。(字符串)