Web プロキシーを使用してリソースにアクセスするように Web サービス・クライアントを構成する
Web プロキシー・サーバーを使用してリソースにアクセスするように Web サービス・クライアントを構成することができます。
このタスクについて
- 管理コンソールの「Java™ Virtual Machine (JVM) カスタム・プロパティー」パネルを使用してプロパティーを構成します。
- wsadmin コマンド行ツールを使用してプロパティーを構成します。
- アセンブリー・ツールを使用してプロパティーを構成します。
- アプリケーション・プログラミング・モデルを使用してプロパティーをプログラマチックに構成します。
Java API XML ベース・リモート・プロシージャー・コール (JAX-RPC) プログラミング・モデルまたは Java API for XML Web Services (JAX-WS) プログラミング・モデルを使用してプロパティーをプログラマチックに構成する場合は、JAX-RPC または JAX-WS 仕様を参照してください。
サポートされる標準および仕様の完全なリストについては、Web サービス仕様書および API 文書を参照してください。
- 呼び出しオブジェクトでプログラマチックに指定される値
- アセンブリー・ツールを使用して各 portQNameBinding 属性のデプロイメント記述子で定義される値
- JVM システム・プロパティーとして定義される値
Java API for XML Web Services (JAX-WS) Web サービスの場合、ポリシー・セット定義で指定する HTTP トランスポート値が、プログラマチックに定義される値よりも優先されます。その後、 プログラマチックに定義する HTTP トランスポート値は、JVM システム・プロパティーとして定義される値よりも優先されます。JAX-WS アプリケーションの場合、 デプロイメント記述子はサポートされません。デプロイメント情報を指定するには、アノテーションを使用します。
手順
タスクの結果
Web プロキシー・サーバーを使用してリソースにアクセスするように Web サービス・クライアントを構成しました。
オプションで http.nonProxyHosts プロパティーを設定して、 要求がプロキシー・サーバーを使用して送信されないマシンのホスト名を指定することができます。クライアント・アプリケーションによって呼び出される要求のうち、このプロパティーに含まれる名前を持つホストに送信されるものは、プロキシー・サーバーを経由しません。このプロパティーは、HTTP および HTTPS 接続の両方に適用されます。構成できる http.nonProxyHosts プロパティーおよびその他の HTTP プロパティーについてさらに学習するには、『Web サービス・アプリケーションの HTTP トランスポート・カスタム・プロパティー』を参照してください。
例
import com.ibm.wsspi.webservices.Constants
Properties prop = new Properties();
InitialContext ctx = new InitialContext(prop);
Service service = (Service)ctx.lookup("java:comp/env/service/StockQuoteService");
QName portQname = new QName("http://httpchannel.test.wsfvt.ws.ibm.com", "StockQuoteHttp");
StockQuote sq = (StockQuote)service.getPort(portQname, StockQuote.class);
((javax.xml.rpc.Stub) sq)._setProperty(Constants.HTTP_PROXYHOST_PROPERTY, "proxyHost1.ibm.com");
((javax.xml.rpc.Stub) sq)._setProperty(Constants.HTTP_PROXYPORT_PROPERTY, "80");
//Set the https.proxyHost as a property on the RequestContext.
BindingProvider bp = (Binding Provider)port;
bp.getRequestContext().put("https.proxyHost", "proxyHost1.ibm.com");
bp.getRequestContext().put("https.proxyPort", "80");