在Jaxrs(例如WebClient)中,我们可以设置连接超时和读取超时。
ClientConfiguration c = WebClient.getConfig(client);
HTTPConduit http = c.getHttpConduit();
HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();
httpClientPolicy.setConnectionTimeout(timeout);
httpClientPolicy.setReceiveTimeout(timeout);
httpClientPolicy.setAllowChunking(false);
http.setClient(httpClientPolicy);
我想设置包含两者的超时,我真的不在乎连接或接收花费了多少时间,我的要求是在X秒内获得响应或者只是放弃搜索。 / p>
答案 0 :(得分:1)
CXF无法为考虑连接和接收持续时间的请求设置最大超时。请求的最大超时时间为:
maximum_timeout = connection_timeout + receive_timeout
请参阅Apache HTTP client的类似问题。解决方法可能是在单独的线程中设置一个计时器,以在所需的最大超时到期时中止连接