Web プロキシーを使用してリソースにアクセスするように Web サービス・クライアントを構成する

Web プロキシー・サーバーを使用してリソースにアクセスするように Web サービス・クライアントを構成することができます。

このタスクについて

他の HTTP クライアント・アプリケーションと同様に、認証を必要とするか、必要としないかのいずれかで、Web プロキシー・サーバーに接続してリソースにアクセスするように Web サービス・クライアントを構成することができます。別の Web サービスに対するクライアントとして機能する Web サービスに対して HTTP トランスポート・プロパティーを構成することができます。 構成する HTTP トランスポート値は実行時に使用されます。以下の方法いずれかで、HTTP トランスポート値を構成します。
  • 管理コンソールの「Java™ Virtual Machine (JVM) カスタム・プロパティー」パネルを使用してプロパティーを構成します。
  • wsadmin コマンド行ツールを使用してプロパティーを構成します。
  • アセンブリー・ツールを使用してプロパティーを構成します。
  • アプリケーション・プログラミング・モデルを使用してプロパティーをプログラマチックに構成します。

Java API XML ベース・リモート・プロシージャー・コール (JAX-RPC) プログラミング・モデルまたは Java API for XML Web Services (JAX-WS) プログラミング・モデルを使用してプロパティーをプログラマチックに構成する場合は、JAX-RPC または JAX-WS 仕様を参照してください。

サポートされる標準および仕様の完全なリストについては、Web サービス仕様書および API 文書を参照してください。

Java API XML ベース・リモート・プロシージャー・コール (JAX-RPC) Web サービスの場合、HTTP トランスポート値は、以下の優先順位になり、プログラマチック・メソッドを最も重要と解釈します。
  1. 呼び出しオブジェクトでプログラマチックに指定される値
  2. アセンブリー・ツールを使用して各 portQNameBinding 属性のデプロイメント記述子で定義される値
  3. JVM システム・プロパティーとして定義される値

Java API for XML Web Services (JAX-WS) Web サービスの場合、ポリシー・セット定義で指定する HTTP トランスポート値が、プログラマチックに定義される値よりも優先されます。その後、 プログラマチックに定義する HTTP トランスポート値は、JVM システム・プロパティーとして定義される値よりも優先されます。JAX-WS アプリケーションの場合、 デプロイメント記述子はサポートされません。デプロイメント情報を指定するには、アノテーションを使用します。

手順

  1. Web サービスの HTTP または HTTPS の proxyHost および proxyPort トランスポート・プロパティーを以下のいずれかの方法で構成します。
    • 管理コンソールの「Java Virtual Machine (JVM) カスタム・プロパティー」パネルを使用
    • wsadmin コマンド行ツールを使用
    • アセンブリー・ツールを使用
    • アプリケーション・プログラミング・モデルをプログラマチックに使用
    HTTP を介して Web プロキシーにアクセスするには、次のようにします。
    • http.proxyHost
    • http.proxyPort
    HTTPS を介して Web プロキシーにアクセスするには、次のようにします。
    • https.proxyHost
    • https.proxyPort
  2. HTTP プロキシー認証が Web サービス・クライアントに必要な場合、前のステップで指定したメソッドの 1 つを使用して、HTTP または HTTPS の proxyUser および proxyPassword トランスポート・プロパティーを追加で構成します。
    HTTP を介して Web プロキシーにアクセスするには、次のようにします。
    • http.proxyUser
    • http.proxyPassword
    HTTPS を介して Web プロキシーにアクセスするには、次のようにします。
    • https.proxyUser
    • https.proxyPassword
  3. HTTP または HTTPS プロパティーをプログラマチックに指定している場合、Stub または Call インスタンスのプロパティーを設定して、HTTP プロキシー認証を構成します。
    1. 以下の Web サービス定数を使用して、HTTP または HTTPS プロパティーをプログラマチックに設定することができます。
      com.ibm.wsspi.webservices.Constants.HTTP_PROXYHOST_PROPERTY
      com.ibm.wsspi.webservices.Constants.HTTP_PROXYPORT_PROPERTY
      com.ibm.wsspi.webservices.Constants.HTTP_PROXYUSER_PROPERTY
      com.ibm.wsspi.webservices.Constants.HTTP_PROXYPASSWORD_PROPERTY
      com.ibm.wsspi.webservices.Constants.HTTPS_PROXYHOST_PROPERTY
      com.ibm.wsspi.webservices.Constants.HTTPS_PROXYPORT_PROPERTY
      com.ibm.wsspi.webservices.Constants.HTTPS_PROXYUSER_PROPERTY
      com.ibm.wsspi.webservices.Constants.HTTPS_PROXYPASSWORD_PROPERTY
  4. Web サービス・トランスポート層でトンネリングを使用して、Web サービス・クライアントが Web プロキシー・サーバーを通じてリソースにアクセスできるようにします。 Java 仮想マシン (JVM) プロパティー、com.ibm.ws.websvcs.transport.enableProxyTunneltrue の値に設定します。

タスクの結果

Web プロキシー・サーバーを使用してリソースにアクセスするように Web サービス・クライアントを構成しました。

オプションで http.nonProxyHosts プロパティーを設定して、 要求がプロキシー・サーバーを使用して送信されないマシンのホスト名を指定することができます。クライアント・アプリケーションによって呼び出される要求のうち、このプロパティーに含まれる名前を持つホストに送信されるものは、プロキシー・サーバーを経由しません。このプロパティーは、HTTP および HTTPS 接続の両方に適用されます。構成できる http.nonProxyHosts プロパティーおよびその他の HTTP プロパティーについてさらに学習するには、『Web サービス・アプリケーションの HTTP トランスポート・カスタム・プロパティー』を参照してください。

以下のコードでは、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");
注: JAX-WS では、以下のコードにより、BindingProvider の RequestContext を使用してプログラマチックに HTTP または HTTPS プロパティーを指定できます。
//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");

トピックのタイプを示すアイコン タスク・トピック



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