モジュール java.xml.ws
パッケージ javax.xml.ws

注釈型FaultAction



  • @Documented
    @Retention(RUNTIME)
    @Target(METHOD)
    public @interface FaultAction
    FaultAction注釈はAction注釈内で使用され、例外クラスからマッピングされたWSDL操作のfaultメッセージにWS-AddressingのActionメッセージ・アドレス指定プロパティを明示的に関連付けることができます。

    classNameクラスに対してマッピングされた、生成されたWSDL操作のfaultメッセージ内にあるwsam:Action属性値は、FaultActionの対応する値と等しくなります。 faultメッセージのwsam:Action値の正確な計算については、JAX-WS仕様のアルゴリズムを参照してください。

    例1: Javaメソッドが、サービス固有の例外を1つしかスローしない場合、inputoutput、および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
    • 必須要素のサマリー

      必須要素 
      修飾子と型 必須要素 説明
      Class<? extends Exception> className
      例外クラスの名前。
    • オプション要素のサマリー

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

      • className

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

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