当响应迟到时,Cxf 客户端花费的时间太长
Cxf client takes too long time when response comes late
我正在为 Web 服务客户端使用 cxf 库。
当响应迟到大约 5 秒时,cxf 需要大约 20 秒才能 return 响应。 ws return 是一个 33912 长响应。
虽然客户对快速响应没有问题。
我找不到问题所在。我测试了 ws 端点,它在 8 秒内达到 returns 最大值。但是cxf客户端有时需要30-50秒。
我打开调试日志,这两行之间需要 9 秒
2018-01-11 17:17:14.022 DEBUG 10492 --- [nio-8086-exec-6]
o.apache.cxf.transport.http.HTTPConduit : Sending POST Message with
Headers to
http://example.com/service
Conduit
:{http://example.com./}ExampleWebServicePort.http-conduit
2018-01-11 17:17:23.370 DEBUG 10492 --- [nio-8086-exec-6]
org.apache.cxf.endpoint.ClientImpl : Interceptors contributed by
bus: [org.apache.cxf.ws.policy.PolicyInInterceptor@3ec595ab]
这是客户:
HTTPConduit httpConduit = (HTTPConduit) client.getConduit();
httpConduit.setAuthSupplier(null);
httpConduit.setAuthorization(null);
HTTPClientPolicy clientPolicy = new HTTPClientPolicy();
clientPolicy.setConnectionTimeout(60000L);
clientPolicy.setReceiveTimeout(60000L);
httpConduit.setClient(clientPolicy);
什么可能导致此问题?
问题是我认为服务器响应很快,但我用错误的端点进行测试。
当我测试正确的端点时,我意识到服务器确实响应晚了。
客户端的响应时间与服务器的响应时间匹配。
我正在为 Web 服务客户端使用 cxf 库。
当响应迟到大约 5 秒时,cxf 需要大约 20 秒才能 return 响应。 ws return 是一个 33912 长响应。
虽然客户对快速响应没有问题。
我找不到问题所在。我测试了 ws 端点,它在 8 秒内达到 returns 最大值。但是cxf客户端有时需要30-50秒。
我打开调试日志,这两行之间需要 9 秒
2018-01-11 17:17:14.022 DEBUG 10492 --- [nio-8086-exec-6] o.apache.cxf.transport.http.HTTPConduit : Sending POST Message with Headers to http://example.com/service Conduit :{http://example.com./}ExampleWebServicePort.http-conduit
2018-01-11 17:17:23.370 DEBUG 10492 --- [nio-8086-exec-6] org.apache.cxf.endpoint.ClientImpl : Interceptors contributed by bus: [org.apache.cxf.ws.policy.PolicyInInterceptor@3ec595ab]
这是客户:
HTTPConduit httpConduit = (HTTPConduit) client.getConduit();
httpConduit.setAuthSupplier(null);
httpConduit.setAuthorization(null);
HTTPClientPolicy clientPolicy = new HTTPClientPolicy();
clientPolicy.setConnectionTimeout(60000L);
clientPolicy.setReceiveTimeout(60000L);
httpConduit.setClient(clientPolicy);
什么可能导致此问题?
问题是我认为服务器响应很快,但我用错误的端点进行测试。
当我测试正确的端点时,我意识到服务器确实响应晚了。
客户端的响应时间与服务器的响应时间匹配。