JAX-WS アプリケーションの場合、アプリケーションのデプロイメント記述子を編集することにより、サービスまたはクライアント・アプリケーションのパッケージ化を行う際に WS-Addressing サポートを使用可能にすることができます。
このタスクについて
デプロイメント記述子を使用して WS-Addressing の振る舞いを変更するには、アプリケーションのデプロイメント記述子ファイルに <addressing> エレメントを追加します。
<addressing> エレメントには、次の表に説明するオプションの子エレメントがあります。
<addressing> エレメントは、Addressing アノテーションと同じように機能します。
<addressing> アノテーションの子エレメントは、Addressing アノテーションのパラメーターと同じように機能します。
表 1. addressing デプロイメント記述子エレメントの子エレメント. この表では、種々の子エレメントとそれらに指定できる値、および説明をリストします。エレメント名 |
指定可能な値 |
説明 |
enabled |
true (デフォルト)
false
|
WS-Addressing サポートが使用可能かどうか |
required |
true
false (デフォルト)
|
WS-Addressing ヘッダーが必須かどうか。 |
responses |
All (デフォルト)
ANONYMOUS
NON_ANONYMOUS
|
同期または非同期のどちらのメッセージ交換パターンを使用するか。
メッセージを同期メッセージ・パターンで送信する場合は ANONYMOUS を指定し、非同期メッセージ交換パターンで送信する場合は NON_ANONYMOUS を使用します。 |
手順
- サービス・アプリケーションの WS-Addressing サポートの振る舞いを変更するには、サービス・デプロイメント記述子の <webservice-description> エレメント内の <port-component> エレメントに <addressing> エレメント (および必要に応じてオプションの子エレメント) を追加します。 次の例では、デプロイメント記述子の Addressing フラグメントは、WS-Addressing が使用可能かつ必須であり、非同期メッセージ交換パターンを使用することを指定しています。
<port-component>
<port-component-name>MyPort1</port-component-name>
<addressing>
<enabled>true</enabled>
<required>true</required>
<responses>NON_ANONYMOUS</responses>
</addressing>
<service-impl-bean>
<servlet-link>MyPort1ImplBean</servlet-link>
</service-impl-bean>
</port-component>
- クライアント・アプリケーションの WS-Addressing サポートの振る舞いを変更するには、クライアント・デプロイメント記述子の <service-ref> エレメント内の <port-component-ref> エレメントに <addressing> エレメント (および必要に応じてオプションの子エレメント) を追加します。 例えば、次のデプロイメント記述子のフラグメントは、WS-Addressing が使用可能にされることを示します。
<service-ref>
<service-ref-name>service/MyPortComponentRef</service-ref-name>
<service-interface>com.example.MyService</service-ref-interface>
<port-component-ref>
<service-endpoint-interface>com.example.MyPortType</service-endpoint-interface>
<addressing>
<enabled>true</enabled>
</addressing>
</port-component-ref>
</service-ref>
タスクの結果
これで、WS-Addressing プロパティーが SOAP メッセージ・ヘッダーに含まれ、メッセージを受信するとサーバーによって処理されるようになりました。