JAX-RS 2.0 클라이언트 구성

Java™ API for XML RESTful Web Services 2.0에 대해 REST 엔드포인트에 액세스하도록 클라이언트를 구성할 수 있습니다. JAX-RS 2.0은 원격 RESTful 웹 서비스에 대한 요청을 작성할 수 있는 새로운 표준화된 클라이언트 API를 소개합니다.

이 태스크 정보

클라이언트 API를 사용하여 웹 자원에 액세스하려면 Client의 인스턴스가 필요합니다. Client의 기본 인스턴스는 ClientBuilder에서 newClient 또는 build를 호출하여 얻을 수 있습니다. 클라이언트를 작성한 후에는 서버 레벨에서 또는 클라이언트 애플리케이션 내에서 해당 클라이언트를 구성할 수 있습니다.

프로시저

  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 클라이언트에 대한 자세한 정보는 비동기 처리에서 확인할 수 있습니다.

다음에 수행할 작업

JAX-RS 2.0 클라이언트를 작성한 후에는 server.xml 파일에 webTarget 요소를 정의하거나 클라이언트 애플리케이션 내에서 프로그래밍 방식으로 특성을 구성하여 JAX-RS 2.0 클라이언트를 구성할 수 있습니다.

[17.0.0.2 and later]webTarget XML 요소를 사용하여 server.xml 파일의 특성을 구성하려면 다음을 수행하십시오.

<webTarget URI="value" property="value" property="value".../>
webTarget 오브젝트가 인스턴스화되고 해당 URI가 이 요소의 URI 값과 일치하는 경우 해당 특성이 webTarget 오브젝트에 적용됩니다. webTarget 요소를 정의할 때 다음 구성 정보를 고려하십시오.
  • 이 URI는 http://foo와 같이 정확한 텍스트 그대로이거나 http://foo*와 같이 후미 문자 *로 끝날 수 있습니다. 후미 문자 *를 사용하는 경우 해당 특성은 URI가 http://foo로 시작되는 모든 webTarget 오브젝트에 적용됩니다.
  • server.xml 파일에 해당 URI와 일치하는 webTarget 요소가 둘 이상 존재하는 경우 정확히 일치하는 항목이 먼저 적용된 후 URI의 정렬 순서에 따라 와일드카드 일치 항목이 적용됩니다.
  • 특성 이름 일치 시 대소문자를 구분합니다.
  • 제공된 JAX-RS 특성 이름 및 값을 모두 사용할 수 있습니다. 구성 특성에 대한 축약 이름을 찾으려면 webTarget JAX-RS 클라이언트 특성을 참조하십시오.

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 쿠키를 설정하고 값을 true로 설정하십시오.
    ClientBuilder cb = ClientBuilder.newBuilder();
            Client c = cb.build();
            c.property("com.ibm.ws.jaxrs.client.ltpa.handler", "true");
    JAX-RS 2.0에서 SSL(Secure Sockets Layer) 기능을 사용하려면 ssl-1.0 또는 appSecurity-2.0 기능을 사용으로 설정해야 합니다. LTPA 토큰 기능의 경우 appSecurity-2.0 기능이 필요합니다.

    JAX-RS 2.0 클라이언트가 IHS를 통해 SSL을 사용하여 실행되도록 환경을 구성하는 방법에 대한 자세한 정보는 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 파일에 추가하는 방법에 대한 자세한 정보는 SSL 핸드쉐이크 중에 웹 서버를 인증하기 위해 필요한 키 데이터베이스 파일 및 인증서 작성을 참조하십시오.
    참고: server.xml의 구성은 다음과 같이 표시됩니다.
    <ssl id="mySSLRefId" keyStoreRef="clientKeyStore" trustStoreRef="clientTrustStore" />
  • [17.0.0.3 and later]프로그래밍 방식으로 com.ibm.ws.jaxrs.client.ssl.config 클라이언트 특성을 설정하는 대신 JAX-RS 2.0 클라이언트에서 사용할 아웃바운드 SSL을 식별하기 위해 SSL 구성에 의존할 수 있도록 아웃바운드 SSL을 구성하십시오.

    아웃바운드 SSL을 구성하기 위해 아웃바운드 SSL 필터 및 아웃바운드 SSL 기본값을 모두 구성하거나 두 가지 옵션 중 하나를 구성할 수 있습니다. 구현하는 옵션 조합에 관계 없이 transportSecurity-1.0 기능을 사용으로 설정해야 합니다.

    • server.xml 파일에서 다음과 같이 transportSecurity-1.0 기능을 사용으로 설정하십시오.
      <featureManager>
          <feature>transportSecurity-1.0</feature>
      </featureManager>
    • 대상 호스트 또는 대상 호스트와 대상 포트 모두에 대한 SSL 구성을 지정하도록 아웃바운드 SSL 필터를 구성하십시오.
      server.xml 파일에서 업데이트할 구성은 다음과 같습니다.
      <ssl id="mySSLRefId" keyStoreRef="clientKeyStore"
      trustStoreRef="clientTrustStore">
         <outboundConnection host=”myhost.atdomain.com” port=”9443” />
         <outboundConnection host=”theotherhost.atdomain.com” port=”8020”
      /> 
      </ssl>
      <ssl id="defaultSSLConfig" keyStoreRef="defaultKeyStore" >
         <outboundConnection host=”defaulthost.domain.com” />
      </ssl>
      아웃바운드 SSL 필터에 대한 자세한 정보는 SSL 구성을 위한 아웃바운드 필터의 내용을 참조하십시오.
    • 아웃바운드 SSL 기본값을 구성하십시오.

      아웃바운드 연결과 일치하는 SSL 필터가 존재하지 않을 경우 JAX-RS 클라이언트에서 아웃바운드 SSL 기본값을 사용합니다.

      server.xml 파일에서 업데이트할 구성은 다음과 같습니다.
      <sslDefault outboundSSLRef=”mySSLRefId” />
      
      <ssl id="mySSLRefId" keyStoreRef="clientKeyStore"
      trustStoreRef="clientTrustStore"/>
      
      <ssl id="defaultSSLConfig" keyStoreRef="defaultKeyStore" />
      SSL 아웃바운드 기본값에 대한 자세한 정보는 아웃바운드 통신을 위해 SSL 설정 구성의 내용을 참조하십시오.
  • com.ibm.ws.jaxrs.client.disableCNCheck 클라이언트 특성을 사용하여 공통 이름 검사를 사용 안함으로 설정하십시오.
    ClientBuilder cb = ClientBuilder.newBuilder();
    cb.property("com.ibm.ws.jaxrs.client.disableCNCheck", true);

주제의 유형을 표시하는 아이콘 태스크 주제

파일 이름: twlp_jaxrs2.0_clientconfig.html