javax.xml.ws.addressing
Annotation Type FaultAction


@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>
 

Since:
JAX-WSA 1.0

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

className

public abstract java.lang.Class className
Name of the exception class

value

public abstract java.lang.String value
Explicit Action for the fault operation

Default:
"##default"