当响应迟到时,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);

什么可能导致此问题?

问题是我认为服务器响应很快,但我用错误的端点进行测试。
当我测试正确的端点时,我意识到服务器确实响应晚了。
客户端的响应时间与服务器的响应时间匹配。