【发布时间】:2020-03-24 05:57:01
【问题描述】:
我有一个使用 apache-cxf(v3.3.2) 生成的 SOAP 客户端。 客户端使用嵌入式 Tomcat 在 Spring Boot 应用程序中运行。
如何指定此 SOAP 客户端的保持活动超时?
到目前为止我发现了什么:
用于建立连接的socket在5s后关闭。 此超时是底层 sun.net.www.http.HttpClient 中的硬编码默认值。 它不受 tomcat connection-timeout 或 com.sun.xml.internal.ws.request.timeout 属性的控制。 HttpClient.keepAliveTimeout 变量仅在服务器以 Keep-Alive 标头响应时设置(例如 Keep-Alive: timeout=60, max=100 ):see line 752。
服务器不提供此标头。
根据this answer,这是预期的行为,但真的是这样吗:
客户端无法指定超时时间,是服务器配置 确定最大超时值。额外的 Keep-Alive 标头 可以通知客户端服务器愿意保留多长时间 连接打开...
【问题讨论】:
标签: java soap timeout keep-alive wsdl2java