@Documented
@Retention(value=RUNTIME)
@Target(value=METHOD)
public @interface Action
Action
annotation allows explicit association of a
WS-Addressing Action
message addressing property with
input
, output
, and
fault
messages of the mapped WSDL operation.
This annotation can be specified on each method of a service endpoint interface.
For such a method, the mapped operation in the generated WSDL's
wsam:Action
attribute on the WSDL input
,
output
and fault
messages of the WSDL operation
is based upon which attributes of the Action
annotation have been specified.
For the exact computation of wsam:Action
values for the messages, refer
to the algorithm in the Jakarta XML Web Services specification.
Example 1: Specify explicit values for Action
message addressing property
for input
and output
messages.
@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; } }The generated WSDL looks like:
<definitions targetNamespace="http://example.com/numbers" ...>
...
<portType name="AddNumbersPortType">
<operation name="AddNumbers">
<input message="tns:AddNumbersInput" name="foo"
<b>wsam:Action="http://example.com/inputAction"</b>/>
<output message="tns:AddNumbersOutput" name="bar"
<b>wsam:Action="http://example.com/outputAction"</b>/>
</operation>
</portType>
...
</definitions>
Example 2: Specify explicit value for Action
message addressing property
for only the input
message. The wsam:Action
values for the
WSDL output
message are computed using the algorithm in the Jakarta XML Web Services specification.
@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; } }The generated WSDL looks like:
<definitions targetNamespace="http://example.com/numbers" ...>
...
<portType name="AddNumbersPortType">
<operation name="AddNumbers">
<input message="tns:AddNumbersInput" name="foo"
<b>wsam:Action="http://example.com/inputAction"</b>/>
<output message="tns:AddNumbersOutput" name="bar"
<b>wsam:Action="http://example.com/numbers/AddNumbersPortType/AddNumbersResponse"</b>/>
</operation>
</portType>
...
</definitions>
It is legitimate to specify an explicit value for Action
message addressing property for
output
message only. In this case, wsam:Action
value for the
WSDL input
message is computed using the algorithm in the Jakarta XML Web Services specification.
Example 3: See FaultAction
annotation for an example of
how to specify an explicit value for Action
message addressing property for the
fault
message.
FaultAction
Modifier and Type | Optional Element and Description |
---|---|
FaultAction[] |
fault
Explicit value of the WS-Addressing
Action message addressing property for the fault
message(s) of the operation. |
java.lang.String |
input
Explicit value of the WS-Addressing
Action message addressing property for the input
message of the operation. |
java.lang.String |
output
Explicit value of the WS-Addressing
Action message addressing property for the output
message of the operation. |
public abstract java.lang.String input
Action
message addressing property for the input
message of the operation.Action
message addressing property for the input
messagepublic abstract java.lang.String output
Action
message addressing property for the output
message of the operation.Action
message addressing property for the output
messagepublic abstract FaultAction[] fault
Action
message addressing property for the fault
message(s) of the operation. Each exception that is mapped to a fault and requires an explicit WS-Addressing
Action
message addressing property, needs to be specified as a value in this property
using FaultAction
annotation.Action
message addressing property for the fault
message(s)