Action (Java Platform SE 7 ) (original) (raw)
The Action
annotation allows explicit association of a WS-Addressing Action
message addressing property withinput
, output
, andfault
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'swsam: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 JAX-WS 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" ...> ... <input message="tns:AddNumbersInput" name="foo" **wsam:Action="" title="undefined" rel="noopener noreferrer">http://example.com/inputAction"**/> <output message="tns:AddNumbersOutput" name="bar" **wsam:Action="" title="undefined" rel="noopener noreferrer">http://example.com/outputAction"**/> ...
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 JAX-WS 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" ...> ... <input message="tns:AddNumbersInput" name="foo" **wsam:Action="http://example.com/inputAction"** /> <output message="tns:AddNumbersOutput" name="bar" **wsam:Action="" title="undefined" rel="noopener noreferrer">http://example.com/numbers/AddNumbersPortType/AddNumbersResponse"**/> ...
It is legitimate to specify an explicit value for Action
message addressing property foroutput
message only. In this case, wsam:Action
value for the WSDL input
message is computed using the algorithm in the JAX-WS specification.
Example 3: See FaultAction annotation for an example of how to specify an explicit value for Action
message addressing property for thefault
message.