Liberty 儲存庫[8.5.5.6 或更新版本]

配置 JAX-RS 2.0 用戶端

若為 Java API for XML RESTful Web Services 2.0,您可以將用戶端配置成存取 REST 端點。JAX-RS 2.0 推出新的標準化「用戶端 API」,您讓您對遠端 RESTful Web 服務提出 HTTP 要求。

關於這項作業

需要 Client 實例,才能使用「用戶端 API」存取 Web 資源。如果要取得 Client 預設實例,可在 ClientBuilder 上呼叫 newClientbuild

程序

  1. server.xml 檔中啟用 jaxrsClient-2.0 或 jaxrs-2.0 特性:
    <featureManager>
        <feature>jaxrs-2.0</feature>// 如果您只需要 JAX-RS 2.0 用戶端特性,可以啟用 jaxrsClient-2.0,而非 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.timeout 用戶端內容,來設定逾時值。
    javax.ws.rs.client.ClientBuilder cb = ClientBuilder.newBuilder();
            cb.property("com.ibm.ws.jaxrs.client.timeout", "1000");
            Client c = cb.build();
    提示: 逾時內容的值是毫秒,類型必須是 long 或 int。如果值的類型無效,會顯示下列訊息:
    CWWKW0700E: 您在「JAX-RS 用戶端」上的 com.ibm.ws.jaxrs.client.timeout 內容中指定的逾時值 {0} 無效。值會設為預設值 30000。{3}  
  • 使用下列用戶端內容,以支援用戶端 Proxy:
    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
      提示: Proxy 伺服器埠值的類型必須是 int。預設值為 80。如果值類型無效,會顯示下列訊息:
      CWWKW0701E: 您在「JAX-RS 用戶端」上的 com.ibm.ws.jaxrs.client.proxy.port 內容中指定的 Proxy 伺服器埠值 {0} 無效。值會設為預設值 80。{3}
    • com.ibm.ws.jaxrs.client.proxy.type
      提示: Proxy 伺服器類型的值必須是 HTTP 或 SOCKS。預設值為 HTTP。如果 Proxy 伺服器的類型無效,會顯示下列訊息:
      CWWKW0702E: 您在「JAX-RS 用戶端」上的 com.ibm.ws.jaxrs.client.proxy.type 內容中指定的 Proxy 伺服器類型值 {0} 無效。值會設為預設值 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 特性。
    註: 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();
    註: server.xml 中的配置會顯示如下:
    <ssl id="mySSLRefId" keyStoreRef="clientKeyStore" trustStoreRef="clientTrustStore" />

指示主題類型的圖示 作業主題

資訊中心條款 | 意見


「時間戳記」圖示 前次更新: 2015 年 6 月 22 日
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=was-libcore-mp&topic=twlp_jaxrs2.0_clientconfig
檔名:twlp_jaxrs2.0_clientconfig.html