java - 当响应迟到时,Cxf 客户端花费的时间太长

标签 java web-services cxf cxf-client

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

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

虽然客户对快速响应没有问题。

我找不到问题所在。我测试了 ws 端点,它在 8 秒内返回最大值。但 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);

什么可能导致这个问题?

最佳答案

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

关于java - 当响应迟到时,Cxf 客户端花费的时间太长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48205331/

相关文章:

file - java ftp 小程序

java - 无法从 Hibernate 捕获异常

java - replaceAll 的问题(我想删除所有出现的 [*])

c# - 由 WSDL.exe 生成的 Web 服务代理代码与 "Update Web Reference"- 我应该关心吗?

c++ - 使用流式传输的 gsoap restful c++ 客户端

java - 转换为 jSON 时忽略 java bean 字段

java - 报告 Java SE 文档中的错误

scala - Play Framework ws libray 流方法在连接 2 分钟后停止

java - 从 org.apache.camel.Exchange 获取 SOAPMessage

java - CXF,wsdl2java。自定义端口名称