配置 JAX-RS 2.0 客户机
对于 Java API for XML RESTful Web Services 2.0,可配置客户机以访问 REST 端点。JAX-RS 2.0 引入了新的标准化客户机 API 以便您可对远程 RESTful Web Service 发出 HTTP 请求。
关于此任务
过程
下一步做什么
- 使用 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();
提示: 超时属性的值为毫秒,类型必须为长整型或整型。如果值类型无效,那么将显示以下消息:CWWKW0700E: 您在 JAX-RS 客户端上的属性 com.ibm.ws.jaxrs.client.timeout 中指定的超时值 {0} 无效。此值设置为缺省值 30000。{3}
- 使用 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();
提示: 超时属性的值为毫秒,类型必须为长整型或整型。如果值类型无效,那么将显示以下消息:CWWKW0700E: 您在 JAX-RS 客户端上的属性 com.ibm.ws.jaxrs.client.receive.timeout 中指定的超时值 {0} 无效。此值设置为缺省值 30000。{3}
- com.ibm.ws.jaxrs.client.connection.timeout
- 使用 com.ibm.ws.jaxrs.client.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提示: 代理服务器端口值的类型必须为整型。缺省值为 80。如果值类型无效,那么将显示以下消息:
CWWKW0701E: 您在 JAX-RS 客户端上的属性 com.ibm.ws.jaxrs.client.proxy.port 中指定的代理服务器端口值 {0} 无效。此值设置为缺省值 80。{3}
- com.ibm.ws.jaxrs.client.proxy.type提示: 代理服务器类型值必须为 HTTP 或 SOCKS。缺省值为 HTTP。如果代理服务器类型无效,那么将显示以下消息:
CWWKW0702E: 您在 JAX-RS 客户端上的属性 com.ibm.ws.jaxrs.client.proxy.type 中指定的代理服务器类型值 {0} 无效。此值设置为缺省值 HTTP。{3}
- 使用 com.ibm.ws.jaxrs.client.ltpa.handler 客户机属性以设置 SSO cookie 并将值设置为 true。
如果要在 JAX-RS 2.0 中使用安全套接字层 (SSL) 功能,那么您需要启用 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");
有关如何配置环境以通过 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 引用标识。
有关从 IHS 密钥文件抽取证书并将其添加至 Liberty JKS 文件来建立信任的更多信息,请参阅创建在 SSL 握手期间认证 Web 服务器时所需的密钥数据库文件和证书。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.disableCNCheck 客户机属性来禁用公共名称检查。
ClientBuilder cb = ClientBuilder.newBuilder(); cb.property("com.ibm.ws.jaxrs.client.disableCNCheck", true);