JAX-WS のアノテーション

Java™ API for XML-Based Web Services (JAX-WS) は、Web サービスの実装に関連したメタデータを指定するため、および Web サービスの開発を簡素化するために、アノテーションの使用に依存しています。アノテーションでは、サーバー・サイドのサービス実装が Web サービスとしてアクセスされる方法、またはクライアント・サイドの Java クラスが Web サービスにアクセスする方法を記述します。

JAX-WS プログラミング標準は、Java クラスに、メタデータでのアノテーションを付けるためのサポートを導入しています。 メタデータは、Web サービスとしてサービス・エンドポイント・アプリケーションを定義するため、およびクライアントが Web サービスにアクセスする方法を定義するために使用されるものです。JAX-WS でサポートされるのは、Metadata Facility for the Java Programming Language (Java Specification Request (JSR) 175) 仕様を基にしたアノテーション、Web Services Metadata for the Java Platform (JSR 181) 仕様を基にしたアノテーション、および JAXB アノテーションが含まれる JAX-WS 2.0 以降 (JSR 224) の仕様で定義されたアノテーションの使用です。JSR 181 標準のアノテーションを使用すると、サービス実装クラスまたはサービス・インターフェース に簡単にアノテーションを付けることができ、アプリケーションが Web サービスとして使用可能になります。 Java ソース内でアノテーションを使用すると、Web サービスの開発およびデプロイメントが 簡素化されます。 通常はデプロイメント記述子ファイル、WSDL ファイルから取得される追加情報の一部を定義したり、または XML および WSDL からソース成果物へメタデータをマッピングすることにより、単純化が実現されます。

バインディング、ハンドラー・チェーン、portType のセット名、サービスおよびその他の WSDL パラメーターの構成にアノテーションを使用します。アノテーションは、Java の WSDL およびスキーマへのマッピング、ならびにランタイム時の JAX-WS ランタイムの処理方法および Web サービス呼び出しへの応答方法を制御するのに使用されます。

JAX-WS Web サービスの場合、webservices.xml デプロイメント記述子はオプションで使用できます。これは、アノテーションを使用して、デプロイメント記述子ファイル内に含まれるすべての情報を指定することができるためです。デプロイメント記述子ファイルを使用して、 既存の JAX-WS アノテーションの拡張またはオーバーライドを行うことができます。webservices.xml デプロイメント記述子で定義した すべての情報により、アノテーションによって指定された対応するすべての情報がオーバーライドされます。

WebSphere® Application Server バージョン 7.0 以降からは、Java EE 5 アプリケーション・モジュール (Web アプリケーション・モジュールのバージョン 2.5 以降、または EJB モジュールのバージョン 3.0 以降) は、JAX-WS のサービスとクライアントの識別のためにアノテーションのスキャンが実行されます。ただし、Java EE 5 より前のアプリケーション・モジュール (Web アプリケーション・モジュールのバージョン 2.4 以前、または EJB モジュールのバージョン 2.1 以前) では、パフォーマンス上の理由から、デフォルトでは、JAX-WS アノテーションがスキャンされません。

バージョン 6.1 Feature Pack for Web Services では、デフォルトの動作として、アプリケーションのインストール中に Java Platform, Enterprise Edition (Java EE) 5 より前の Web アプリケーション・モジュールをスキャンして JAX-WS サービスを識別し、Java EE 5 より前の Web アプリケーションおよび EJB モジュールをスキャンしてサービス・クライアントを見つけます。 WebSphere Application Server バージョン 7.0 以降のデフォルト動作では、アプリケーションのインストール時またはサーバー開始時に、 Java EE 5 より前のモジュールでアノテーションがスキャンされることはないため、前のリリースのフィーチャー・パックとの後方互換性を保持する ためには、以下のいずれかのプロパティーを構成する必要が あります。
  • WAR ファイルまたは EJB モジュールの META-INF/MANIFEST.MF 内の UseWSFEP61ScanPolicy プロパティー を true に設定できます。 以下に例を示します。
    Manifest-Version: 1.0
    UseWSFEP61ScanPolicy: true
    モジュールの META-INF/MANIFEST.MF ファイル内でこのプロパティーが true に 設定されている場合、モジュールの Java EE バージョン に関わらず、モジュール内の JAX-WS アノテーションがスキャンされます。デフォルト値は false で、 このデフォルト値が有効な場合、JAX-WS アノテーションは、 バージョンが Java EE 5 以降の モジュール内でのみサポートされます。
  • 管理コンソールを使用して、com.ibm.websphere.webservices.UseWSFEP61ScanPolicy カスタム Java 仮想マシン (JVM) プロパティー を設定できます。使用する正しいナビゲーション・パスについては、 JVM カスタム・プロパティーについての文書を参照してください。モジュール の Java EE バージョンに関わらず、すべてのモジュールで アノテーションのスキャンが行われるよう要求するには、カスタム・プロパティー com.ibm.websphere.webservices.UseWSFEP61ScanPolicytrue に設定します。 設定値の変更は、デフォルト動作の変更を必要とする各サーバー上で行う 必要があります。
このプロパティーがモジュールの META-INF/MANIFEST.MF ファイル内で 設定されている場合、この設定値はサーバーのカスタム JVM プロパティーに優先 します。どちらのプロパティーを使用する場合でも、 アプリケーションがインストールされる前に、アノテーションのスキャン動作として望ましい動作を確立する必要があります。 アプリケーションがインストールされた後にスキャン動作を動的に 変更することはできません。アプリケーションがインストールされた後に動作の変更が必要になった場合は、 まずアプリケーションをアンインストールし、適切なプロパティーを使用して望ましいスキャン動作を指定し、 その後でもう一度アプリケーションをインストールする 必要があります。ノード内に含まれているサーバーの構成において com.ibm.websphere.webservices.UseWSFEP61ScanPolicytrue に 設定されているようなノードを統合する場合、このプロパティーはデプロイメント・マネージャーに影響しません。 統合前のノードでの動作を保持するには、ノードが統合される前に、デプロイメント・マネージャー上でこのプロパティーを true に 設定する必要があります。
[z/OS]
トラブルの回避 (Avoid trouble) トラブルの回避 (Avoid trouble): この JVM プロパティー は、z/OS® プラットフォームで 使用される場合、サーバーのサーバント領域および制御領域の両方で設定される必要があります。gotcha
トラブルの回避 (Avoid trouble) トラブルの回避 (Avoid trouble): ノード内に含まれているサーバーの構成において com.ibm.websphere.webservices.UseWSFEP61ScanPolicytrue に 設定されているようなノードを統合する場合、これはデプロイメント・マネージャーに影響しません。 統合前のノードでの動作を保持したい場合は、ノードが統合される前に、デプロイメント・マネージャー上でこのプロパティーを true に 設定する必要があります。gotcha
以下の表に、JAX-WS によってサポートされているアノテーションを示します。 アノテーションのターゲットは、これらの Java オブジェクトに適用されます。
  • Java クラス、enum またはインターフェースなどの型
  • メソッド
  • Java クラス内のローカル・インスタンス変数を表すフィールド
  • Java メソッド内のパラメーター
表 1. Web サービスのメタデータのアノテーション (JSR 181). サポートされる Web サービス・メタデータ・アノテーションおよび関連するプロパティーが記述されています。
アノテーション・クラス アノテーション プロパティー
javax.jws. WebService @WebService アノテーションは、Web サービスの実装として Java クラスをマーク付けするか、または Web サービス・インターフェースの実装としてサービス・エンドポイント・インターフェース (SEI) をマーク付けします。
重要:
  • Web サービスを実装する Java クラスは、@WebService または @WebServiceProvider アノテーションのいずれかを指定する必要があります。両方のアノテーションを指定することはできません。このアノテーションは、クライアントまたはサーバー SEI またはサーバー・エンドポイントの実装クラスに適用されます。
  • アノテーションが endpointInterface 属性で SEI を参照する場合、SEI にも @WebService アノテーションでアノテーションが付けられている必要があります。
  • サービス・エンドポイント実装で @WebService アノテーションおよび @WebMethod アノテーションを使用して、JAX-WS Web サービスとして公開したい Java メソッドを指定する方法のベスト・プラクティスを学習するには、SEI ベースの JAX-WS Web サービスに関する公開するメソッドの説明を参照してください。
  • アノテーション・ターゲット: Type
  • プロパティー:
    - name
    wsdl:portType の名前。デフォルト値は、Java クラスまたはインターフェースの未修飾名です。 (ストリング)
    - targetNamespace
    Web サービスから生成された WSDL エレメントおよび XML エレメントの XML 名前空間を指定します。 デフォルト値は、Web サービスを含むパッケージ名からマップされた名前空間です。 (ストリング)
    - serviceName
    Web サービスのサービス名を指定します: wsdl:service。 デフォルト値は、Java クラスの単純名 + Service です。 (ストリング)
    - endpointInterface
    サービスの抽象 Web サービス契約を定義する、サービス・エンドポイント・インターフェースの修飾名を指定します。 指定した場合、サービス・エンドポイント・インターフェースは、抽象 WSDL 契約を定義するために使用されます。 (ストリング)
    - portName
    wsdl:portName。デフォルト値は、WebService.name +Port です。 (ストリング)
    - wsdlLocation
    Web サービスを定義している、WSDL 文書の Web アドレスを指定します。Web アドレスは、相対または絶対です。 (ストリング)
javax.jws. WebMethod @WebMethod アノテーションは、Web サービス・オペレーションであるメソッドを示します。

このアノテーションを、クライアントまたはサーバーのサービス・エンドポイント・インターフェース (SEI) またはサーバー・エンドポイント実装クラスのメソッドに適用します。

  • アノテーション・ターゲット: Method
  • プロパティー:
    - operationName
    このメソッドにマッチする wsdl:operation の名前を指定します。 デフォルト値は、Java メソッドの名前です。 (ストリング)
    - action
    このオペレーションのアクションを定義します。SOAP バインディングでは、この値により SOAPAction ヘッダーの値が決定します。この値は明示的に設定する必要があります。
    - exclude
    Web サービスからメソッドを除外するかどうかを指定します。デフォルト値は false です。(ブール値)
javax.jws. Oneway @Oneway アノテーションは、入力メッセージのみがあり、出力メッセージがない Web サービスの片方向のオペレーションとしてメソッドを示します。

このアノテーションを、クライアントまたはサーバーのサービス・エンドポイント・インターフェース (SEI) またはサーバー・エンドポイント実装クラスのメソッドに適用します。

  • アノテーション・ターゲット: Method
  • 片方向アノテーションにはプロパティーはありません。
javax.jws. WebParam @WebParam アノテーションは、Web サービス・メッセージ・パーツおよび XML エレメントの個々のパラメーターのマッピングをカスタマイズします。

このアノテーションを、クライアントまたはサーバーのサービス・エンドポイント・インターフェース (SEI) またはサーバー・エンドポイント実装クラスのメソッドに適用します。

  • アノテーション・ターゲット: Parameter
  • プロパティー:
    - name
    パラメーターの名前。オペレーションがリモート・プロシージャー・コール (RPC) スタイルで、partName 属性が指定されていない場合、これはパラメーターを表す wsdl:part 属性の名前になります。 オペレーションが文書スタイルである場合、またはパラメーターがヘッダーにマップする場合は、-name はパラメーターを表す XML エレメントのローカル名になります。 オペレーションが文書スタイルである場合、パラメーター・スタイルが BARE である場合、およびモードが OUT または INOUT である場合、この属性が必要です。 (ストリング)
    - partName
    このパラメーターを表す wsdl:part 属性の名前を定義します。 これは、オペレーションが RPC スタイルである場合、またはオペレーションが文書スタイルでパラメーター・スタイルが BARE である場合にのみ使用されます。 (ストリング)
    - targetNamespace
    パラメーターの XML エレメントの XML 名前空間を指定します。属性が XML エレメントにマップする場合、文書バインディングにのみ適用します。 Web サービスのデフォルト値は、targetNamespace です。 (ストリング)
    - mode
    この値は、このメソッド用にパラメーターがフローする方向を表します。 有効な値は、ININOUT、および OUT です。 (ストリング)
    - header
    パラメーターが、メッセージ本体ではなくメッセージ・ヘッダーにあるかどうかを指定します。 デフォルト値は false です。(ブール値)
javax.jws. WebResult @WebResult アノテーションは、WSDL パーツまたは XML エレメントへの戻り値のマッピングをカスタマイズします。

このアノテーションを、クライアントまたはサーバーのサービス・エンドポイント・インターフェース (SEI) またはサーバー・エンドポイント実装クラスのメソッドに適用します。

  • アノテーション・ターゲット: Method
  • プロパティー:
    - name
    WSDL ファイルにリストされ、ワイヤーのメッセージにある時の戻り値の名前を指定してます。 RPC バインディングのでは、これは戻り値を表す wsdl:part 属性の名前になります。 文書バインディングでは、-name パラメーターは戻り値を表す XML エレメントのローカル名になります。 RPC および DOCUMENT/WRAPPED バインディングでは、デフォルト値は return です。DOCUMENT/BARE バインディングでは、デフォルト値はメソッド名 + Response です。 (ストリング)
    - targetNamespace
    戻り値の XML 名前空間を指定します。このパラメーターは、オペレーションが RPC スタイルの場合、またはオペレーションが DOCUMENT スタイルの場合、およびパラメーター・スタイルが BARE の場合にのみ使用されます。 (ストリング)
    - header
    結果をヘッダーに運ぶかどうかを指定します。デフォルト値は false です。(ブール値)
    - partName
    RPC または DOCUMENT/BARE オペレーションの結果のパーツ名を指定します。 デフォルト値は @WebResult.name です。 (ストリング)
javax.jws. HandlerChain @HandlerChain アノテーションは、Web サービスと外部定義されたハンドラー・チェーンを関連付けます。

サービス・エンドポイント・インターフェース (SEI) またはサーバー・エンドポイント実装クラスの @HandlerChain アノテーションを使用することで、サーバー・サイドのハンドラーのみ構成することができます。

クライアント・サイドのハンドラーを構成するいくつかの方法の 1 つを使用します。 生成済みサービス・クラスまたは SEI の @HandlerChain アノテーションを使用することで、クライアント・サイドのハンドラーを構成できます。 さらに、サービスの HandlerResolver インターフェースの実装をプログラム的に登録するか、またはバインディング・オブジェクトのハンドラー・チェーンをプログラム的に設定することができます。

  • アノテーション・ターゲット: Type
  • プロパティー:
    - file
    ハンドラー・チェーン・ファイルのロケーションを指定します。ファイル・ロケーションは、外部フォームの絶対 java.net.URL またはクラス・ファイルの相対パスのいずれかです。 (ストリング)
    - name
    構成ファイルのハンドラー・チェーンの名前を指定します。 (ストリング)
javax.jws. SOAPBinding @SOAPBinding アノテーションは、SOAP メッセージ・プロトコルへの Web サービスのマッピングを指定します。

このアノテーションを、クライアントまたはサーバーであるサービス・エンドポイント・インターフェース (SEI) またはサーバー・エンドポイント実装クラスのタイプまたはメソッドに適用します。

メソッド・レベルのアノテーションは、指定できる対象に制限があり、style プロパティーが DOCUMENT の場合のみ使用されます。メソッド・レベルのアノテーションが指定されていない場合、タイプから @SOAPBinding 動作が使用されます。

  • アノテーション・ターゲット: Type または Method
  • プロパティー:
    - style
    Web サービスとの送受信メッセージのエンコード・スタイルを定義します。 有効な値は、DOCUMENT および RPC です。デフォルト値は DOCUMENT です。 (ストリング)
    - use
    Web サービスとの送受信メッセージに使用されるフォーマットを定義します。 デフォルト値は LITERAL です。ENCODED はサポートされていません。 (ストリング)
    - parameterStyle
    メソッドのパラメーターがメッセージ本体全体を表しているかどうか、またはパラメーターがオペレーション後に指定された最上位レベル・エレメント内にラップされたエレメントかどうかを判別します。 有効な値は、WRAPPED または BARE です。 BARE 値は、DOCUMENT スタイル・バインディングにのみ使用できます。 デフォルト値は WRAPPED です。 (ストリング)

表 2. JAX-WS アノテーション (JSR 224). サポートされる JAX-WS アノテーションおよび 関連するプロパティーが記述されています。
アノテーション・クラス アノテーション プロパティー
javax.xml.ws. Action @Action アノテーションで、Web サービス操作に関連付けられた WS-Addressing アクションを指定します。

特定のメソッドと 一緒にこのアノテーションを使用し、対応する WSDL 文書を生成する場合、 WS-Addressing Action 拡張属性が、そのメソッドに対応 する WSDL オペレーションの input エレメントおよび output エレメントに 追加されます。

この属性を WSDL オペレーションに 追加するためには、サーバー・エンドポイント 実装クラスに @Addressing アノテーションを指定することも必要です。@Addressing アノテーションを使用したくない場合は、 Action 属性が既に定義された独自の WSDL 文書を用意することができます。

  • アノテーション・ターゲット: Method
  • プロパティー:
    - fault
    オペレーションの wsdl:fault FaultAction の配列を 指定します。 (ストリング)
    - input
    オペレーションの wsdl:input のアクションを 指定します。 (ストリング)
    - output
    オペレーションの wsdl:output のアクションを 指定します。 (ストリング)
javax.xml.ws. BindingType @BindingType アノテーションは、このタイプのエンドポイントを公開する際に使用するバインディングを指定します。

このアノテーションを、サーバー・エンドポイント実装クラスに適用します。

重要: javax.xml.ws.soap.SOAPBinding.SOAP11HTTP_MTOM_BINDING または javax.xml.ws.soap.SOAPBinding.SOAP12HTTP_MTOM_BINDING のいずれかをアノテーションの値として指定することで、JavaBeans エンドポイント実装クラスの @BindingType アノテーションを使用して、MTOM を使用可能にできます。
  • アノテーション・ターゲット: Type
  • プロパティー:
    - value
    バインディング ID の Web アドレ スを示します。有効な値は、javax.xml.ws.soap.SOAPBinding.SOAP11HTTP_BINDINGjavax.xml.ws.soap.SOAPBinding.SOAP12HTTP_BINDING、および javax.xml.ws.http.HTTPBinding.HTTP2HTTP_BINDING です。デフォルト値は javax.xml.ws.soap.SOAPBinding.SOAP11HTTP_BINDING です。 (ストリング)
javax.xml.ws. FaultAction @FaultAction アノテーションは、 障害応答に追加される WS-Addressing アクションを指定します。

この アノテーションは、@Action アノテーション内になければなりません。

特定の メソッドと一緒にこのアノテーションを使用する場合、WS-Addressing FaultAction 拡張属性が、そのメソッドに対応する WSDL オペレーション の fault エレメントに追加されます。

この属性を WSDL オペレーションに 追加するためには、サーバー・エンドポイント 実装クラスに @Addressing アノテーションを指定することも必要です。@Addressing アノテーションを使用したくない場合は、 Action 属性が既に定義された独自の WSDL 文書を用意することができます。

  • アノテーション・ターゲット: Method
  • プロパティー:
    - value
    オペレーションの wsdl:fault のアクションを 指定します。 (ストリング)
    - output
    例外クラスの名前を指定します。 (ストリング)
    - className
    要求ラッパーを表すクラスの名前を指定します。 (ストリング)
javax.xml.ws. RequestWrapper @RequestWrapper アノテーションは、JAXB で生成された要求ラッパー Bean、エレメント名、およびシリアライゼーションとデシリアライゼーションの名前空間に、ランタイム時に使用される要求ラッパー Bean を提供します。

Java オブジェクトで開始する際、このエレメントは文書リテラル・モードの多重定義の競合を解決するために使用されます。この場合、className 属性のみが必要です。

このアノテーションを、クライアントまたはサーバーのサービス・エンドポイント・インターフェース (SEI) またはサーバー・エンドポイント実装クラスのメソッドに適用します。

  • アノテーション・ターゲット: Method
  • プロパティー:
    - localName
    要求ラッパーを表す XML スキーマ・エレメントのローカル名を指定します。 デフォルト値は、javax.jws.WebMethod アノテーションで定義されたとおり、operationName です。 (ストリング)
    - targetNamespace
    要求ラッパー・メソッドの XML 名前空間を指定します。デフォルト値は、SEI のターゲット名前空間です。 (ストリング)
    - className
    要求ラッパーを表すクラスの名前を指定します。 (ストリング)
    - partName
    RequestWrapper クラスの XML スキーマ・エレメントを 表す wsdl:part 属性の名前を指定します。このプロパティーは、JAX-WS 2.2 以降 に適用できます。 (ストリング)
javax.xml.ws. ResponseWrapper @ResponseWrapper アノテーションは、JAXB で生成された応答ラッパー Bean、エレメント名、およびシリアライゼーションとデシリアライゼーションの名前空間に、ランタイム時に使用される要求ラッパー Bean を提供します。

Java オブジェクトで開始する際、このエレメントは文書リテラル・モードの多重定義の競合を解決するために使用されます。この場合、className 属性のみが必要です。

このアノテーションを、クライアントまたはサーバーのサービス・エンドポイント・インターフェース (SEI) またはサーバー・エンドポイント実装クラスのメソッドに適用します。

  • アノテーション・ターゲット: Method
  • プロパティー:
    - localName
    要求ラッパーを表す XML スキーマ・エレメントのローカル名を指定します。 デフォルト値は、operationName + Response です。operationName は、javax.jws.WebMethod アノテーションで定義されます。 (ストリング)
    - targetNamespace
    要求ラッパー・メソッドの XML 名前空間を指定します。デフォルト値は、SEI のターゲット名前空間です。 (ストリング)
    - className
    応答ラッパーを表すクラスの名前を指定します。 (ストリング)
    - partName
    ResponseWrapper クラスの XML スキーマ・エレメントを 表す wsdl:part 属性の名前を指定します。このプロパティーは、JAX-WS 2.2 以降 に適用できます。 (ストリング)
javax.xml.ws. RespectBinding @RespectBinding アノテーションは、 JAX-WS 実装がエンドポイントに wsdl:binding の内容を使用 する必要があるかどうかを指定します。

このアノテーションが指定されている場合、 enabled 属性が true に設定されたすべての必要な WSDL 拡張性エレメントが サポートされていることを確認する検査が 実行されます。

このアノテーションを、サーバーのエンドポイント実装クラスのメソッドに適用します。

  • アノテーション・ターゲット: Method
  • プロパティー:
    - enabled
    wsdl:binding の使用が必要かどうかを 指定します。デフォルト値は true です。(ブール値)
javax.xml.ws. ServiceMode @ServiceMode アノテーションは、サービス・プロバイダーにプロトコル・メッセージ全体へのアクセスが必要か、またはメッセージ・ペイロードのみが必要かを指定します。
重要: @ServiceMode アノテーションは、@WebServiceProvider アノテーションでアノテーションを付けられるクラスでのみサポートされます。
  • アノテーション・ターゲット: Type
  • プロパティー:
    - value
    プロバイダー・クラスが、メッセージのペイロード PAYLOAD または メッセージ全体 MESSAGE を受け入れるかどうかを示します。デフォルト値は PAYLOAD です。 (ストリング)
javax.xml.ws. soap.Addressing @Addressing アノテーション は、このサービスが WS-Addressing サポートを使用可能にすることを指定します。

このアノテーションを、サーバーのエンドポイント実装クラスのメソッドに適用します。

  • アノテーション・ターゲット: Type
  • プロパティー:
    - enabled
    WS-Addressing が使用可能にされるかどうかを指定します。デフォルト値は true です。(ブール値)
    - required
    着信メッセージ内に WS-Addressing ヘッダーがなければならないことを 指定します。デフォルト値は false です。(ブール値)
    - responses
    使用するメッセージ交換パターンを指定します。 デフォルト値は Responses.ALL です。このプロパティーは、JAX-WS 2.2 以降 に適用できます。 (ストリング)
javax.xml.ws. soap.MTOM @MTOM アノテーションは、 SOAP メッセージ本体内のバイナリー・コンテンツが MTOM を使用して送信されるかどうかを指定します。

このアノテーションを、サービス・エンドポイント実装クラスに適用します。

  • アノテーション・ターゲット: Class
  • プロパティー:
    - enabled
    JAX-WS エンドポイントに対して MTOM が使用可能にされるかどうかを指定します。デフォルト値は true です。(ブール値)
    - threshold
    MTOM を使用して送信されるメッセージの最小サイズを指定します。 指定されたこの整数よりもメッセージ・サイズが小さい場合、メッセージ は base64 または hexBinary データとして XML 文書にインラインで入れられます。(整数)
javax.xml.ws. WebFault @WebFault アノテーションは、WSDL 障害を Java 例外にマップします。 これは、WSDL 障害メッセージが参照したグローバル・エレメントから生成された JAXB タイプのシリアライゼーション中に、障害の名前を取り込むために使用されます。 これは、WSDL 障害に対するサービス固有の例外のマッピングをカスタマイズするのにも使用できます。

このアノテーションは、クライアントまたはサーバーの障害実装クラスにも適用されます。

  • アノテーション・ターゲット: Type
  • プロパティー:
    - name
    WSDL ファイルの対応障害を表す XML エレメントのローカル名を指定します。 実際の値を指定する必要があります。 (ストリング)
    - targetNamespace
    WSDL ファイルの対応障害を表す XML エレメントの名前空間を指定します。 (ストリング)
    - faultBean
    障害 Bean クラスの名前を指定します。 (ストリング)
    - messageName
    WSDL ファイルの対応障害を表す wsdl:message 属性の名前を指定します。 このプロパティーは、JAX-WS 2.2 以降 に適用できます。 (ストリング)
javax.xml.ws. WebServiceProvider @WebServiceProvider アノテーションは、JAX-WS プロバイダー実装クラスの要求を満たすクラスを示します。
重要:
  • Web サービスを実装する Java クラスは、@WebService または @WebServiceProvider アノテーションのいずれかを指定する必要があります。両方のアノテーションを指定することはできません。
  • @WebServiceProvider アノテーションは、サービス実装クラスでのみサポートされます。
@WebServiceProvider アノテーションの付いたクラスは、 javax.xml.ws.Provider インターフェースを実装する必要があります。
  • アノテーション・ターゲット: Type
  • プロパティー:
    - targetNamespace
    Web サービスから生成された WSDL エレメントおよび XML エレメントの XML 名前空間を指定します。 デフォルト値は、Web サービスを含むパッケージ名からマップされた名前空間です。 (ストリング)
    - serviceName
    Web サービスのサービス名を指定します: wsdl:service。 デフォルト値は、Java クラスの単純名 + Service です。 (ストリング)
    - portName
    wsdl:portName。デフォルト値はクラスの名前 + Port です。 (ストリング)
    - wsdlLocation
    Web サービスを定義している、WSDL 文書の Web アドレス この属性は必須です。 (ストリング)
javax.xml.ws. WebServiceRef @WebServiceRef アノテーションは、クライアントによって呼び出される Web サービスへの参照を定義します。
注:
  • @WebServiceRef アノテーション は、JAX-WS サービスおよびポートのインスタンスを注入するのに 使用できます。
  • @WebServiceRef アノテーションは、特定のクラス・タイプでのみサポートされます。 例えば、JAX-WS エンドポイント実装 クラス、JAX-WS ハンドラー・クラス、Enterprise JavaBeans クラス、およびサーブレット・クラスです。 このアノテーションは、@Resource アノテーションと同じクラス・タイプで サポートされます。サポートされるクラス・タイプの完全なリストについては、Java Platform, Enterprise Edition (Java EE) 5 仕様を参照してください。
  • アノテーション・ターゲット: Type、Field または Method
  • プロパティー:
    - name
    リソースの JNDI 名を指定します。フィールド名は、フィールド・アノテーションのデフォルトになります。メソッドに対応する JavaBeans プロパティー名は、メソッド・アノテーションのデフォルトになります。クラス・アノテーションにはデフォルト設定がないため、値を指定する必要があります。 (ストリング)
    - type
    リソースの Java タイプを示します。フィールド・タイプは、フィールド・アノテーションのデフォルトになります。 JavaBeans プロパティーのタイプは、メソッド・アノテーションのデフォルトになります。クラス・アノテーションにはデフォルト設定がないため、値を指定する必要があります。(クラス)
    - mappedName
    このリソースのマップ先の名前を指定します。 (ストリング)
    - value
    サービス・クラスの値を表します。javax.xml.ws.Service を拡張したタイプです。 この属性は、参照タイプがサービス・エンドポイント・インターフェースの場合には必須です。(クラス)
    - wsdlLocation
    Web サービスを定義している、WSDL 文書の Web アドレス この属性は必須です。 (ストリング)
    - lookup
    ターゲット Web サービスの JNDI 検索名を指定します。このプロパティーは、JAX-WS 2.2 以降 に適用できます。 (ストリング)
javax.xml.ws. WebServiceRefs @WebServiceRefs アノテーションは、複数の @WebServiceRef アノテーションを特定のクラスに関連付けます。
注: @WebServiceRef アノテーションは、特定のクラス・タイプでのみサポートされます。 例えば、JAX-WS エンドポイント実装 クラス、JAX-WS ハンドラー・クラス、Enterprise JavaBeans クラス、およびサーブレット・クラスです。 このアノテーションは、@Resource アノテーションと同じクラス・タイプで サポートされます。サポートされるクラス・タイプの完全なリストについては、Java Platform, Enterprise Edition (Java EE) 5 仕様を参照してください。
  • アノテーション・ターゲット: Type
  • プロパティー:
    - value
    複数の Web サービス参照宣言用の配列を指定します。この属性は必須です。
表 3. JAX-WS の共通アノテーション (JSR 250). サポートされる JAX-WS 共通アノテーションおよび 関連するプロパティーが記述されています。
アノテーション・クラス アノテーション プロパティー
javax.annotation. Resource @Resource アノテーションは、アプリケーションに必要な WebServiceContext リソースにマークを付けます。
注:

このアノテーションを、JavaBeans エンドポイント またはプロバイダー・エンドポイントのサーバー・エンドポイント実装クラスの WebServiceContext タイプのフィールドに適用すると、 その結果として、指定されたフィールドに、WebServiceContext のインスタンスがコンテナーにより注入 されます。

このアノテーション が @WebServiceRef アノテーションの代わりに使用された場合、 @WebServiceRef アノテーションに関して記述されたルールが当てはまります。

  • アノテーション・ターゲット: Field または Method
  • プロパティー:
    - type
    リソースの Java タイプを示します。デフォルトの java.lang.Object または javax.xml.ws.Web ServiceContext 値を使用する必要があります。タイプがデフォルトの場合、リソースをフィールドまたはメソッドに注入する必要があります。 この場合、メソッドで定義されたフィールドのタイプまたは JavaBeans プロパティーのタイプは javax.xml.ws.WebServiceContext でなければなりません。 (クラス)
    このアノテーションを使用して Web サービスを注入している場合は、@WebServiceRef タイプ属性の説明を参照してください。
javax.annotation. Resources @Resources アノテーションは、複数の @Resource アノテーションを特定のクラスに関連付け、複数のリソース宣言のコンテナーの働きをします。
  • アノテーション・ターゲット: Field または Method
  • プロパティー:
    - value
    複数の @Resource アノテーション用の配列を指定します。この属性は必須です。
javax.annotation. PostConstruct @PostConstruct アノテーションは、クラスで依存性注入された後に実行する必要のあるメソッドにマークを付けます。

このアノテーションを、JAX-WS アプリケーション・ハンドラー、サーバー・エンドポイント実装クラスに適用します。

  • アノテーション・ターゲット: Method
javax.annotation. PreDestroy @PreDestroy アノテーションは、コンテナーによりインスタンスが除去されるプロセスにあるときに実行する必要のあるメソッドにマークを付けます。

このアノテーションを、JAX-WS アプリケーション・ハンドラーまたはサーバー・エンドポイント実装クラスに適用します。

  • アノテーション・ターゲット: Method
表 4. IBM 所有のアノテーション. サポートされる IBM® 所有のアノテーションおよび 関連するプロパティーが記述されています。
アノテーション・クラス アノテーション プロパティー
com.ibm.websphere. wsaddressing. jaxws21. SubmissionAddressing @SubmissionAddressing アノテーション は、このサービスが 2004/08 WS-Addressing 仕様の WS-Addressing サポートを使用可能にすることを 指定します。

このアノテーションは、 JAX-WS 2.1 仕様の IBM 実装の 一部です。

このアノテーションを、サーバーのエンドポイント実装クラスのメソッドに適用します。

  • アノテーション・ターゲット: Type
  • プロパティー:
    - enabled
    WS-Addressing が使用可能にされるかどうかを指定します。デフォルト値は true です。(ブール値)
    - required
    着信メッセージ内に WS-Addressing ヘッダーがなければならないことを 指定します。デフォルト値は false です。(ブール値)

トピックのタイプを示すアイコン 参照トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rwbs_jaxwsannotations
ファイル名:rwbs_jaxwsannotations.html