该错误消息意味着您的 Web 服务客户端试图通过网络从远程 Web 服务接收数据,但在特定时间段内没有收到数据,因此 Web 服务客户端停止等待接收数据。
可能的原因之一可能是timeout
属性太低。默认分别为 30000 和 60000 毫秒的 cxf 默认值。这些可以根据您创建客户端的方式进行更改。
如果您使用 java 代码创建客户端,您可以使用:
//1 minute for connection
((BindingProvider) wsPort).getRequestContext().put("com.sun.xml.ws.connect.timeout", 1 * 60 * 1000);
//3 minutes for request
((BindingProvider) wsPort).getRequestContext().put("com.sun.xml.ws.request.timeout", 3 * 60 * 1000);
如果您使用的是 Spring,则可以使用如下映射:
<util:map id="jaxwsProperties">
<entry key="com.sun.xml.internal.ws.request.timeout">
<value type="java.lang.Integer">120000</value>
</entry>
<entry key="com.sun.xml.internal.ws.connect.timeout">
<value type="java.lang.Integer">60000</value>
</entry>
</util:map>
然后将该地图设置到您的<jaxws:client.../>
配置中。