JAX-RS 2.0 클라이언트 구성
Java™ API for XML RESTful Web Services 2.0에 대해 REST 엔드포인트에 액세스하도록 클라이언트를 구성할 수 있습니다. JAX-RS 2.0은 원격 RESTful 웹 서비스에 대한 요청을 작성할 수 있는 새로운 표준화된 클라이언트 API를 소개합니다.
이 태스크 정보
프로시저
다음에 수행할 작업
JAX-RS 2.0 클라이언트를 작성한 후에는 server.xml 파일에 webTarget 요소를 정의하거나 클라이언트 애플리케이션 내에서 프로그래밍 방식으로 특성을 구성하여 JAX-RS 2.0 클라이언트를 구성할 수 있습니다.
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}
- com.ibm.ws.jaxrs.client.connection.timeout
- 클라이언트 프록시 지원을 위해 다음 클라이언트 특성을 사용하십시오.
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로 설정하십시오.
JAX-RS 2.0에서 SSL(Secure Sockets Layer) 기능을 사용하려면 ssl-1.0 또는 appSecurity-2.0 기능을 사용으로 설정해야 합니다. LTPA 토큰 기능의 경우 appSecurity-2.0 기능이 필요합니다.ClientBuilder cb = ClientBuilder.newBuilder(); Client c = cb.build(); c.property("com.ibm.ws.jaxrs.client.ltpa.handler", "true");
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를 설정하십시오.
IHS 키 파일에서 인증서를 추출하여 신뢰 저장소를 설정하고 해당 인증서를 Liberty JKS 파일에 추가하는 방법에 대한 자세한 정보는 SSL 핸드쉐이크 중에 웹 서버를 인증하기 위해 필요한 키 데이터베이스 파일 및 인증서 작성을 참조하십시오.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" />
프로그래밍 방식으로 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 필터에 대한 자세한 정보는 SSL 구성을 위한 아웃바운드 필터의 내용을 참조하십시오.<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 필터가 존재하지 않을 경우 JAX-RS 클라이언트에서 아웃바운드 SSL 기본값을 사용합니다.
server.xml 파일에서 업데이트할 구성은 다음과 같습니다.
SSL 아웃바운드 기본값에 대한 자세한 정보는 아웃바운드 통신을 위해 SSL 설정 구성의 내용을 참조하십시오.<sslDefault outboundSSLRef=”mySSLRefId” /> <ssl id="mySSLRefId" keyStoreRef="clientKeyStore" trustStoreRef="clientTrustStore"/> <ssl id="defaultSSLConfig" keyStoreRef="defaultKeyStore" />
- server.xml 파일에서 다음과 같이 transportSecurity-1.0 기능을 사용으로
설정하십시오.
- com.ibm.ws.jaxrs.client.disableCNCheck 클라이언트 특성을 사용하여
공통 이름 검사를 사용 안함으로 설정하십시오.
ClientBuilder cb = ClientBuilder.newBuilder(); cb.property("com.ibm.ws.jaxrs.client.disableCNCheck", true);