Jaxrs设置全局超时的能力(连接+读取)

时间:2017-02-19 13:27:03

标签: jax-rs cxf jax-ws

在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>

1 个答案:

答案 0 :(得分:1)

CXF无法为考虑连接和接收持续时间的请求设置最大超时。请求的最大超时时间为:

maximum_timeout = connection_timeout + receive_timeout

请参阅Apache HTTP client的类似问题。解决方法可能是在单独的线程中设置一个计时器,以在所需的最大超时到期时中止连接