可能是什么原因:
org.apache.cxf.interceptor.Fault:无法发送消息。
Caused by: java.net.SocketTimeoutException: SocketTimeoutException 调用 https://xxx.xxx.xxx.xxx:8443/services/test: 读取超时
它通常发生在我向 ws
发送 soap 请求之后。我正在使用 apache cxf
。我完全确定 ws
已启动并正在运行,因为在超时发生之前,客户端将再发送 2 个请求。超时发生在第三个 soap 请求中。
最佳答案
我的网络服务客户端也遇到过这个错误。对我有用的解决方案是在 CXF 配置文件 (cxf.xml) 中配置 http 客户端。
如 Apache CXF document 中所述:
1.添加http-conduit命名空间和xsd:
<beans ... xmlns:http-conf="http://cxf.apache.org/transports/http/configuration ... xsi:schemaLocation="... http://cxf.apache.org/transports/http/configuration http://cxf.apache.org/schemas/configuration/http-conf.xsd ...">
2. 添加 http-conduit 标签/元素并将 ReceiveTimeout/ConnectionTimeout 设置为 300000 毫秒:
<http-conf:conduit name="*.http-conduit"> <http-conf:client ConnectionTimeout="300000" ReceiveTimeout="300000"/> </http-conf:conduit>
关于java - apache cxf 无法发送消息并读取超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14623705/