パッケージ jakarta.xml.ws

アノテーション型 FaultAction


  • @DocumentedSE
    @RetentionSE(RUNTIMESE)
    @TargetSE(METHODSE)
    public @interface FaultAction
    FaultAction アノテーションは Action アノテーション内で使用され、WS-Addressing Action メッセージアドレス指定プロパティと例外クラスからマップされた WSDL 操作の fault メッセージとの明示的な関連付けを可能にします。

    className クラスにマップされた生成された WSDL 操作の fault メッセージの wsam:Action 属性値は、FaultAction の対応する値と同じです。障害メッセージの wsam:Action 値の正確な計算については、Jakarta XML Web Services 仕様のアルゴリズムを参照してください。

    例 1: Java メソッドがサービス固有の例外を 1 つだけスローする場合は、inputoutputfault メッセージの 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
      例外クラスの名前。
    • オプション要素のサマリー

      オプション要素  
      修飾子と型 オプションの要素 説明
      StringSEvalue
      例外の WS-Addressing Action メッセージアドレス指定プロパティの値。
    • 要素の詳細

      • className

        ClassSE<? extends ExceptionSE> className
        例外クラスの名前。
        戻り値:
        例外クラスの名前
      • value

        StringSE value
        例外の WS-Addressing Action メッセージアドレス指定プロパティの値。
        戻り値:
        例外の WS-Addressing Action メッセージアドレス指定プロパティ
        デフォルト:
        ""