标准JWS注解参考
2016-01-18 本文已影响733人
JohnShen
javax.jws.WebService
描述
作用于Class。用于描述一个JWS文件实现一个webservice时候的细节。
属性
-
name
(String,非必需):webservice的名字。映射为WSDL文件中的<wsdl:portType>
元素。在JWS文件中的默认值是Java class的非全路径名称。 -
targetNamespace
(String,非必需):从这个webservice生成的WSDL和XML元素的XML命名空间。默认值是通过JAX-RPC规范指定的。 -
serviceName
(String,非必需):这个webservice的service名字。映射为WSDL文件中的<wsdl:service>
元素。默认值事Java class在JWS文件中的非全路径名称,再加上Service
这个字符串。 -
wsdlLocation
(String,非必需):一个pre-defined WSDL文件的相对或绝对URL。如果你指定了这个属性,那么jwsc
Ant任务将不生成WSDL文件,并且会返回一个错误,如果JWS文件和WSDL文件中的port type和bindings不一致的话。(注意:wsdlc
Ant任务在从一个WSDL生成endpoint接口JWS文件的时候使用这个属性。通常来说,用户从来不会使用这个属性在他们自己的JWS文件中) -
endpointInterface
(String,非必需):已经存在的service endpoint接口文件的全名。如果你指定了这个属性,那就意味着你已经创建了endpoint接口文件,并且它存在于你的CLASSPATH
下。
示例
@WebService(name="JMSTransportPortType",
serviceName="JMSTransportService",
targetNamespace="http://example.org")
javax.jws.WebMethod
描述
作用于Method。指定一个method被暴露作为webservice的一个公共的操作。你必须明确地使用这个注解来暴露一个method;如果你没有指定这个注解,那么这个method默认是不被暴露的。
属性
-
operationName
(String,非必需):operation的名字。映射为WSDL文件中的<wsdl:operation>
元素。默认值事这个方法的名称。 -
action
(String,非必需):这个operation的action。对于SOAP
绑定来说,这个属性的值决定了在SOAP消息中的SOAPAction header
的值。
示例
@WebMethod(operationName="echoComplexType")
public BasicStruct echoStruct(BasicStruct struct)
{
// ...
}
javax.jws.Oneway
描述
作用于Method。指定一个method只有输入参数,没有返回值。这个注解必须和@WebMethod
注解联合使用。在不是void的带有任何返回值的方法上使用,或者使用一个Holder类作为输入参数,或者抛出受检异常,都会出现错误。这个注解没有任何属性。
示例
@WebMethod()
@Oneway()
public void helloWorld(String input) {
...
}
javax.jws.WebParam
描述
作用于Parameter。在webservice的输入参数的operation和生成的WSDL文件的元素之间自定义映射。也被用来指定参数的行为。
属性
-
name
(String,非必需):在WSDL文件中的参数名称。对于RPC风格的webservice来说,name映射为<wsdl:part>
元素的名称来代表这个参数。对于document风格的webservice来说,name是XML元素的local name来代表这个参数。默认值是方法参数的名字。 -
targetNamespace
(String,非必需):参数的XML命名空间。这个值只在document风格的webservice使用,从而参数映射为XML元素。默认值是这个webservice的targetNamespace。 -
mode
(enum,非必需):参数流动的方向。合法的值是:WebParam.Mode.IN
,WebParam.Mode.OUT
,WebParam.Mode.INOUT
。
默认的值是WebParam.Mode.IN
。如果你指定了WebParam.Mode.OUT
或WebParam.Mode.INOUT
,那么参数的数据类型必须是Holder
或者Holder
的扩展。详细信息,请看JAX-RPC规范。
WebParam.Mode.OUT
和WebParam.Mode.INOUT
模式只支持RPC风格的webservice,或者是映射到header上的参数。 -
header
(boolean,非必需):指定在SOAP header上可以找到该参数的值。默认情况下,参数是在SOAP body中的,合法的值是true
和false
。默认值是false
。
示例
@WebMethod()
public int echoInt(
@WebParam(name="IntegerInput",
targetNamespace="http://example.org/complex")
int input)
{
// ...
}