パッケージ jakarta.xml.ws
アノテーション型 FaultAction
@DocumentedSE @RetentionSE(RUNTIMESE) @TargetSE(METHODSE) public @interface FaultAction
FaultAction
アノテーションはAction
アノテーション内で使用され、WS-AddressingAction
メッセージアドレス指定プロパティと例外クラスからマップされた WSDL 操作のfault
メッセージとの明示的な関連付けを可能にします。className
クラスにマップされた生成された WSDL 操作のfault
メッセージのwsam:Action
属性値は、FaultAction
の対応する値と同じです。障害メッセージのwsam:Action
値の正確な計算については、Jakarta XML Web Services 仕様のアルゴリズムを参照してください。例 1: Java メソッドがサービス固有の例外を 1 つだけスローする場合は、
input
、output
、fault
メッセージのAction
メッセージアドレス指定プロパティに明示的な値を指定します。@WebService(targetNamespace="http://example.com/numbers") public class AddNumbersImpl { @Action( fault = { @FaultAction(className=AddNumbersException.class, value="http://example.com/faultAction") }) public int addNumbers(int number1, int number2) throws AddNumbersException { return number1 + number2; } }
生成された WSDL は次のようになります。<definitions targetNamespace="http://example.com/numbers" ...> ... <portType name="AddNumbersPortType"> <operation name="AddNumbers"> ... <fault message="tns:AddNumbersException" name="AddNumbersException"
wsam:Action="http://example.com/faultAction"/> </operation> </portType> ... </definitions>
例 2: これは、サービス固有の例外の
Action
メッセージアドレス指定プロパティの明示的な値が存在しないかどうかを示す例です。@WebService(targetNamespace="http://example.com/numbers") public class AddNumbersImpl { public int addNumbers(int number1, int number2) throws AddNumbersException { return number1 + number2; } }
生成された WSDL は次のようになります。<definitions targetNamespace="http://example.com/numbers" ...> ... <portType name="AddNumbersPortType"> <operation name="AddNumbers"> ... <fault message="tns:addNumbersFault" name="InvalidNumbers"
wsam:Action="http://example.com/numbers/AddNumbersPortType/AddNumbers/Fault/AddNumbersException"/> </operation> </portType> ... </definitions>
例 3: これは、Java メソッドが複数のサービス固有の例外をスローした場合に
Action
メッセージアドレス指定プロパティに明示的な値を指定する方法を示す例です。@WebService(targetNamespace="http://example.com/numbers") public class AddNumbersImpl { @Action( fault = { @FaultAction(className=AddNumbersException.class, value="http://example.com/addFaultAction"), @FaultAction(className=TooBigNumbersException.class, value="http://example.com/toobigFaultAction") }) public int addNumbers(int number1, int number2) throws AddNumbersException, TooBigNumbersException { return number1 + number2; } }
生成された WSDL は次のようになります。<definitions targetNamespace="http://example.com/numbers" ...> ... <portType name="AddNumbersPortType"> <operation name="AddNumbers"> ... <fault message="tns:addNumbersFault" name="AddNumbersException"
wsam:Action="http://example.com/addFaultAction"/> <fault message="tns:tooBigNumbersFault" name="TooBigNumbersException"
wsam:Action="http://example.com/toobigFaultAction"/> </operation> </portType> ... </definitions>
- 導入:
- 1.6、JAX-WS 2.1
必須定数のサマリー
必須要素 修飾子と型 必須要素 説明 ClassSE<? extends ExceptionSE>
className
例外クラスの名前。
要素の詳細
className
ClassSE<? extends ExceptionSE> className
例外クラスの名前。- 戻り値:
- 例外クラスの名前
value
StringSE value
例外の WS-AddressingAction
メッセージアドレス指定プロパティの値。- 戻り値:
- 例外の WS-Addressing
Action
メッセージアドレス指定プロパティ
- デフォルト:
- ""