|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: REQUIRED | OPTIONAL | DETAIL: ELEMENT | ||||||||
@Documented @Retention(value=RUNTIME) @Target(value=METHOD) public @interface FaultAction
The FaultAction annotation can be specified on each method of a
service endpoint interface or implementation that throws an exception. This annotation
allows implicit and explicit association of Action for the exception with
the corresponding WSDL operation. The generated WSDL contains explicit wsa:Action
attribute on the WSDL fault element, as defined by the WS-Addressing 1.0
WSDL Binding specification.
Here is an example using default values of FaultAction.
Example 1:
@javax.jws.WebService
public class AddNumbersImpl {
@javax.ws.addressing.FaultAction(className=AddNumbersException.class)
public int addNumbers(int number1, int number2) throws AddNumbersException {
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="Parameters"/>
<output message="tns:AddNumbersOutput" name="Result"/>
<fault message="tns:addNumbersFault" name="InvalidNumbers"
wsa:Action="http://example.com/numbers/AddNumbersPortType/AddNumbersFault:InvalidNumbers"/>
</operation>
<portType>
...
<definitions>
Here is an example where an explicit value for FaultAction is specified.
Example 2:
@javax.jws.WebService
public class AddNumbersImpl {
@javax.ws.addressing.FaultAction(className=AddNumbersException.class, value="http://example.com/addnumbers/fault")
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="Parameters"/>
<output message="tns:AddNumbersOutput" name="Result"/>
<fault message="tns:addNumbersFault" name="InvalidNumbers"
wsa:Action="http://example.com/addnumbers/fault"/>
</operation>
<portType>
...
<definitions>
FaultAction may be used with Action annotation as shown below.
Example 3:
@javax.jws.WebService
public class AddNumbersImpl {
@javax.ws.addressing.Action(input="http://example.com/addnumbers/input", output="http://example.com/addnumbers/output")
@javax.ws.addressing.FaultAction(className=AddNumbersException.class, value="http://example.com/addnumbers/fault")
public int addNumbers(int number1, int number2) throws AddNumbersException {
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="Parameters"
wsa:Action="http://example.com/addnumbers/input"/>
<output message="tns:AddNumbersOutput" name="Result"
wsa:Action="http://example.com/addnumbers/output"/>
<fault message="tns:addNumbersFault" name="InvalidNumbers"
wsa:Action="http://example.com/addnumbers/fault"/>
</operation>
<portType>
...
<definitions>
| Required Element Summary | |
|---|---|
java.lang.Class |
className
Name of the exception class |
| Optional Element Summary | |
|---|---|
java.lang.String |
value
Explicit Action for the fault operation |
| Element Detail |
|---|
public abstract java.lang.Class className
public abstract java.lang.String value
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: REQUIRED | OPTIONAL | DETAIL: ELEMENT | ||||||||