Web サービス・アドレッシング (WS-Addressing) サポートでは、Web サービスをアドレス指定するメカニズムを提供し、メッセージにアドレッシング情報を提供します。WS-Addressing サポートは、クライアントではデフォルトで使用不可に設定されています。
サーバー上で WS-Addressing サポートを使用不可に設定する方法は、ご使用のアプリケーションが JAX-RPC または JAX-WS のどちらに基づいているかによって異なります。
このタスクについて
ほとんどの場合、WS-Addressing サポートはアプリケーションの実行に悪い影響を与えないため、アプリケーションで要求されていない場合でも、WS-Addressing サポートを使用不可にする必要はありません。
JAX-RPC アプリケーションの場合、WS-Addressing サポートを使用不可にすると、Web Services アトミック・トランザクションなどのその他の仕様に対するサポートも使用不可になるため、危険を伴う可能性があります。
手順
- 以下のいずれかの方法を使用して、JAX-WS サービス・プロバイダーの WS-Addressing サポートを使用不可にします。
- サービス・コードで Addressing アノテーションおよび SubmissionAddressing アノテーションの両方を使用し、
enabled パラメーターを false に設定します。例えば、以下のようにします。
import javax.xml.ws.soap.Addressing;
@Addressing(enabled=false)
@SubmissionAddressing(enabled=false)
@WebService(...)
- サービス・アプリケーションのデプロイメント記述子で <webservice-description>/<port-component>/<addressing> デプロイメント記述子エレメントを使用します。例えば、以下のようにします。
<port-component>
<port-component-name>MyPort1</port-component-name>
<addressing>
<enabled>false</enabled>
</addressing>
<service-impl-bean>
<servlet-link>MyPort1ImplBean</servlet-link>
</service-impl-bean>
</port-component>
- JAX-WS クライアントの場合は、WS-Addressing サポートはデフォルトで使用不可に設定されているので、WS-Addressing サポートを使用不可にするために何らかの処置を行う必要はありません。
ただし、以下のいずれかの方法により、
WS-Addressing が使用不可になるようにプログラムで指定できます。
- クライアント・コードで AddressingFeature クラスおよび SubmissionAddressingFeature クラスの両方を使用し、
enabled パラメーターを false に設定します。例えば、以下のようにします。
AddressingFeature feat = new AddressingFeature(false);
SubmissionAddressingFeature feat = new AddressingFeature(false);
- 注入された Web サービス・プロキシー参照に Addressing アノテーションを使用します。例えば、以下のようにします。
public class MyClientApplication {
// Disable Addressing for a port-component-ref resource injection.
@Addressing(enabled=false)
@WebServiceRef(MyService.class)
private MyPortType myPort;
...
}
- <service>/<port-component>/<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>false</enabled>
</addressing>
</port-component-ref>
</service-ref>
- JAX-RPC サービス・プロバイダーまたはクライアントに対して WS-Addressing サポートを使用不可にするには、com.ibm.ws.wsaddressingAndDependentsDisabled システム・プロパティーを true に設定します。 以下に例を示します。
java -Dcom.ibm.ws.wsaddressingAndDependentsDisabled=true ... application_name
重要: アプリケーションが正しく機能するためには、WS-Addressing メッセージ・アドレッシング・プロパティーが必要な場合があるため、このプロパティーは注意して使用してください。
このプロパティーを設定すると、Web Services アトミック・トランザクション、Web Services
Business Agreement、Web Services Notification、および Web Services Reliable Messaging の
仕様に対するサポートもなくなります (サポートがなくなる仕様は、WS-Addressing サポートの内容によって異なります)。
タスクの結果
このタスクを完了すると、WS-Addressing サポートが使用不可になります。クライアントで WS-Addressing を使用不可にすると、WebSphere® Application Server が、アウトバウンド Web サービス・メッセージの SOAP ヘッダーで WS-Addressing メッセージ・アドレッシング・プロパティーを送信しないようになります。さらに、サーバーで WS-Addressing を使用不可にすると、WebSphere Application
Server が、着信 SOAP ヘッダーで WS-Addressing MAP を処理しないようになります。