【问题标题】:Cxf client takes too long time when response comes late响应迟到时,Cxf 客户端花费的时间太长
【发布时间】:2018-06-20 16:19:56
【问题描述】:

我正在使用 cxf 库作为 Web 服务客户端。

当响应迟到大约 5 秒时,cxf 需要大约 20 秒才能返回响应。 ws 返回一个 33912 长响应。

不过,客户对快速响应没有任何问题。

我找不到问题所在。我测试了 ws 端点,它在 8 秒内返回最大值。但是 cxf 客户端有时需要 30-50 秒。

我打开调试日志,这两行之间用了9秒

2018-01-11 17:17:14.022 调试 10492 --- [nio-8086-exec-6] o.apache.cxf.transport.http.HTTPConduit:发送 POST 消息 标头 http://example.com/service 导管 :{http://example.com./}ExampleWebServicePort.http-conduit

2018-01-11 17:17:23.370 调试 10492 --- [nio-8086-exec-6] org.apache.cxf.endpoint.ClientImpl :拦截器贡献者 总线:[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);

什么可能导致这个问题?

【问题讨论】:

    标签: java web-services cxf cxf-client


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-07-08
      • 2017-02-12
      • 1970-01-01
      • 1970-01-01
      • 2011-12-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多