WS-Policy を使用した、JAX-WS アプリケーションに対する Web サービス・アドレッシング・サポートの使用可能化
JAX-WS アプリケーションの場合、WSDL 文書に WS-Policy アサーションを追加することにより、クライアントまたはサービス・アプリケーションの開発時に WS-Addressing サポートを使用可能にできます。
このタスクについて
JAX-WS 2.2 仕様で、アプリケーション WSDL 文書内の WS-Policy アサーションをコード内の Java™ アノテーションとの間でマップできるようにする機能が導入されました。
JAX-WS アプリケーションで WS-Addressing サポートを使用可能にするのには、いくつかの方法があります。 AddressingFeature クラスを使用するとか、Addressing アノテーションを使用するなどの、より優先度の高い方式でオーバーライドされない限り、WS-Policy を使用する方式が有効になります。 WebSphere® Application Server で使用される優先順位の詳細については、親トピック『JAX-WS アプリケーションに対する Web サービス・アドレッシング・サポートの使用可能化』を参照してください。
プロバイダー・コードに Addressing アノテーションを追加し、wsgen コマンド行ツールを使用して WSDL 文書を生成すると、WS-Addressing サポートを指定する WS-Policy アサーションが WSDL 文書に含まれることになります。 しかし、公開された WSDL 文書をプロバイダー・サービス用に参照している場合、これによってコード内に定義されているアノテーションがあっても上書きされてしまうため、ポリシー・セットに定義されているポリシーが表示される場合があります。
既存の WSDL 文書を使用して Java コードを作成している場合、WebSphere Application Server が WSDL を読み取る時に、WS-Addressing サポートを指定する WS-Policy アサーションがあると、生成される Java コードに Addressing アノテーションが含まれるようになります。
手順
タスクの結果
WS-Addressing を使用可能にするよう指定する WS-Addressing アノテーションをアプリケーション・コードに追加すると、生成した WSDL には WS-Policy アサーションが含まれます。
WS-Addressing サポートを指定する WS-Policy アサーションが WSDL に含められると、生成される SOAP メッセージに WS-Addressing ヘッダーが含められます。
WS-Addressing が必須であると指定し、WS-Addressing ヘッダーを含まないインバウンド SOAP メッセージが受信されると、例外が発生します。