JAX-RS 2.0 クライアントの構成

Java API for XML RESTful Web Services 2.0 の場合、クライアントが REST エンドポイントにアクセスするように構成できます。JAX-RS 2.0 では標準化された新しい Client API が導入され、リモート RESTful Web サービスに HTTP 要求を行うことができるようになりました。

このタスクについて

Client API を使用して Web リソースにアクセスするには、Client のインスタンスが必要です。ClientBuildernewClient または build を呼び出すことによって、Client のデフォルト・インスタンスを取得できます。

手順

  1. server.xml ファイルで jaxrsClient-2.0 または jaxrs-2.0 フィーチャーを使用可能にします。
    <featureManager>
        <feature>jaxrs-2.0</feature>// If you only need the JAX-RS 2.0 client feature, you can enable jaxrsClient-2.0 instead of  jaxrs-2.0 
    </featureManager>
  2. JAX-RS 2.0 クライアントを作成し、要求をサーバーに送信します。
    javax.ws.rs.client.ClientBuilder cb = ClientBuilder.newBuilder();
    
    javax.ws.rs.client.Client c = cb.build();
    String res = null;
    
    try {
    	res = c.target("<Resource_URL>")
                 .path("<PATH>")
                 .request()
                 .get(String.class);
    	} catch (Exception e) {
          	res = "[Error]:" + e.toString();
          } finally {
                c.close();        
          }   
    非同期 JAX-RS 2.0 クライアントについて詳しくは、非同期処理を参照してください。

次のタスク

  • com.ibm.ws.jaxrs.client.connection.timeout クライアント・プロパティーと com.ibm.ws.jaxrs.client.receive.timeout クライアント・プロパティーを使用して、タイムアウト値を設定します。
    • com.ibm.ws.jaxrs.client.connection.timeout
      javax.ws.rs.client.ClientBuilder cb = ClientBuilder.newBuilder();
              cb.property("com.ibm.ws.jaxrs.client.connection.timeout", "1000"); 
              Client c = cb.build();
    • com.ibm.ws.jaxrs.client.receive.timeout
      javax.ws.rs.client.ClientBuilder cb = ClientBuilder.newBuilder();
              cb.property("com.ibm.ws.jaxrs.client.receive.timeout", "1000"); 
              Client c = cb.build();
    ヒント: タイムアウト・プロパティーの値はミリ秒単位であり、タイプは long または int です。値のタイプが無効な場合、次のメッセージが表示されます。
    CWWKW0700E: The timeout value {0} that you specified in the property com.ibm.ws.jaxrs.client.receive.timeout on the JAX-RS Client side is invalid. The value is set to default 30000. {3}
  • クライアント・プロキシー・サポートに関する次のクライアント・プロパティーを使用します。
    ClientBuilder cb = ClientBuilder.newBuilder();
    cb.property("com.ibm.ws.jaxrs.client.proxy.host", "hostname");
    cb.property("com.ibm.ws.jaxrs.client.proxy.port", "8888";);
    cb.property("com.ibm.ws.jaxrs.client.proxy.type", "HTTP");
    
    Client c = cb.build();  
    • com.ibm.ws.jaxrs.client.proxy.host
    • com.ibm.ws.jaxrs.client.proxy.port
      ヒント: プロキシー・サーバー・ポート値のタイプは int でなければなりません。デフォルト値は 80 です。値のタイプが無効な場合、次のメッセージが表示されます。
      CWWKW0701E: The proxy server port value {0} that you specified in the property com.ibm.ws.jaxrs.client.proxy.port on the JAX-RS Client side is invalid. The value is set to default 80. {3}
    • com.ibm.ws.jaxrs.client.proxy.type
      ヒント: プロキシー・サーバー・タイプの値は HTTP または SOCKS でなければなりません。デフォルト値は HTTP です。プロキシー・サーバーのタイプが無効な場合、次のメッセージが表示されます。
      CWWKW0702E: The proxy server type value {0} that you specified in the property com.ibm.ws.jaxrs.client.proxy.type on the JAX-RS Client side is invalid. The value is set to default HTTP. {3}
  • com.ibm.ws.jaxrs.client.ltpa.handler クライアント・プロパティーを使用して、SSO Cookie を設定し、値を true に設定します。
    ClientBuilder cb = ClientBuilder.newBuilder();
            Client c = cb.build();
            c.property("com.ibm.ws.jaxrs.client.ltpa.handler", "true");
    JAX-RS 2.0 で Secure Sockets Layer (SSL) 機能を使用する場合、ssl-1.0 フィーチャーまたは appSecurity-2.0 フィーチャーを有効にする必要があります。LTPA トークン機能には、appSecurity-2.0 フィーチャーが必須です。

    IHS を介した SSL を使用して JAX-RS 2.0 クライアントが実行されるように環境を構成する方法について詳しくは、IBM HTTP Server の SSL サポートの構成を参照してください。

    注: ssl-1.0 フィーチャーは、appSecurity-2.0 フィーチャーのサブフィーチャーです。jaxrsClient-2.0 フィーチャーと ssl-1.0 フィーチャーを有効にすると、appSecurity-2.0 フィーチャーが自動的に有効になります。
  • com.ibm.ws.jaxrs.client.ssl.config クライアント・プロパティーを使用して、server.xml の SSL 参照 ID を設定します。
    ClientBuilder cb = ClientBuilder.newBuilder();
            cb.property("com.ibm.ws.jaxrs.client.ssl.config", "mySSLRefId"); 
            Client c = cb.build();
    IHS の鍵ファイルから証明書を抽出し、それを Liberty の JKS ファイルに追加することにより信頼を確立することについて詳しくは、『Create a key database file and certificates needed to authenticate the Web server during an SSL handshake』を参照してください。
    注: server.xml 内の構成は次のようになります。
    <ssl id="mySSLRefId" keyStoreRef="clientKeyStore" trustStoreRef="clientTrustStore" />
  • com.ibm.ws.jaxrs.client.disableCNCheck クライアント・プロパティーを使用して、 共通名のチェックを無効にします。
    ClientBuilder cb = ClientBuilder.newBuilder();
    cb.property("com.ibm.ws.jaxrs.client.disableCNCheck", true);

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



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