@Documented @Retention(value=RUNTIME) @Target(value=METHOD) public @interface Action
Action
注释允许一个WS寻址的显式关联Action
与消息寻址属性input
, output
和fault
所映射的WSDL操作的消息。
可以在服务端点接口的每个方法上指定此注释。 对于这样的方法,在生成的WSDL的映射操作wsam:Action
在WSDL属性input
, output
和fault
的WSDL的消息operation
是基于哪些属性的的时Action
已指定注释。 要精确计算消息的wsam:Action
值,请参考JAX-WS规范中的算法。
示例1 :为input
和output
消息指定Action
消息寻址属性的显式值。
@WebService(targetNamespace="http://example.com/numbers")
public class AddNumbersImpl {
@Action( input="http://example.com/inputAction", output="http://example.com/outputAction")
public int addNumbers(int number1, int number2) {
return number1 + number2;
}
}
生成的WSDL如下所示:
<definitions targetNamespace="http://example.com/numbers" ...>
...
<portType name="AddNumbersPortType">
<operation name="AddNumbers">
<input message="tns:AddNumbersInput" name="foo"
wsam:Action="http://example.com/inputAction"/>
<output message="tns:AddNumbersOutput" name="bar"
wsam:Action="http://example.com/outputAction"/>
</operation>
</portType>
...
</definitions>
实施例2:用于指定显式值Action
消息寻址属性仅对input
消息。 使用JAX-WS规范中的算法计算WSDL output
消息的wsam:Action
值。
@WebService(targetNamespace="http://example.com/numbers")
public class AddNumbersImpl {
@Action(input="http://example.com/inputAction")
public int addNumbers(int number1, int number2) {
return number1 + number2;
}
}
生成的WSDL如下所示:
<definitions targetNamespace="http://example.com/numbers" ...>
...
<portType name="AddNumbersPortType">
<operation name="AddNumbers">
<input message="tns:AddNumbersInput" name="foo"
wsam:Action="http://example.com/inputAction" />
<output message="tns:AddNumbersOutput" name="bar"
wsam:Action="http://example.com/numbers/AddNumbersPortType/AddNumbersResponse"/>
</operation>
</portType>
...
</definitions>
它是合法的,为指定一个明确的价值Action
消息处理财产为output
唯一的消息。
在这种情况下,使用JAX-WS规范中的算法来计算WSDL input
消息的wsam:Action
值。
实施例3:参见FaultAction
注释有关如何用于指定一个明确的值的示例Action
消息寻址属性为fault
消息。
FaultAction
public abstract String input
Action
消息寻址属性为
input
的操作的消息。
public abstract String output
Action
消息寻址属性为
output
的操作的消息。
public abstract FaultAction[] fault
Action
消息寻址属性为fault
的操作的(多个)消息。
映射到故障并需要显式WS-Addressing Action
消息寻址属性的每个Action
都需要使用FaultAction
注释指定为此属性中的值。