我想为每个调用剩余客户端设置请求超时。目前我有这个:
private Client clientBuilder() {
return new ResteasyClientBuilder()
.establishConnectionTimeout(2, TimeUnit.SECONDS)
.socketTimeout(10, TimeUnit.SECONDS)
.build()
.register(ClientRestLoggingFilter.class)
.register(ObjectMapperContextResolver.class);
}
问题是,除了get之外,其他方法可能不起作用。 而且,套接字超时不是读取完整响应的超时,而是单个数据包的超时。 socketTimeout and connectionTimeout information
我正在寻找类似以下球衣的RestEasy解决方案:
import org.glassfish.jersey.client.ClientProperties;
ClientConfig configuration = new ClientConfig();
configuration.property(ClientProperties.CONNECT_TIMEOUT, 1000);
configuration.property(ClientProperties.READ_TIMEOUT, 1000);
Client client = ClientBuilder.newClient(configuration);
答案 0 :(得分:1)
正如 redhat website 在 jboss v7.3 上所解释的:
<块引用>以下符合 ClientBuilder 规范的方法替换了某些已弃用的 RESTEasy 方法:
connectTimeout 方法取代了 establishConnectionTimeout 方法。
readTimeout 方法取代了 socketTimeout 方法。
所以这应该适合你的情况:
private Client clientBuilder() {
return new ResteasyClientBuilder()
.connectTimeout(2, TimeUnit.SECONDS)
.readTimeout(10, TimeUnit.SECONDS)
.build()
.register(ClientRestLoggingFilter.class)
.register(ObjectMapperContextResolver.class);
}