JAX-WS Web服务在客户端上获取400 Bad Request错误,在服务器上获取Broken Pipe错误以进行长时间操作

时间:2014-05-27 13:40:14

标签: java tomcat jax-ws

我有一个基于Java的客户端,它通过JAX-WS从Tomcat 6.0.24服务器webapp接收数据。我最近使用新功能升级了服务器,这些功能可能需要很长时间(超过30秒)才能运行某些输入。

事实证明,对于这些长时间的操作,会发生某种超时。客户端收到HTTP 400 Bad Request错误,不久之后(至少根据我的日志时间戳),服务器报告一个Broken Pipe。

这是客户端的错误消息:

com.sun.xml.internal.ws.client.ClientTransportException: The server sent HTTP status code 400: Bad Request

服务器:

javax.xml.ws.WebServiceException: javax.xml.stream.XMLStreamException: ClientAbortException:  java.net.SocketException: Broken pipe

我已尝试在服务的 BindingProvider 上添加超时设置,但这似乎并没有改变任何内容。默认超时应该是无限的,对吗?

我不知道它是否相关,但值得注意的是客户端是在Karaf OSGI框架中运行的OSGI捆绑包。

最重要的是,我不知道这里发生了什么。请注意,新功能 无需运行太长时间即可运行。另请注意,新功能的响应的大小并不比平时大 - 只需要更长的时间来计算。

1 个答案:

答案 0 :(得分:0)

最后,问题是由服务器公共网关上的某种反DoS措施引起的。不幸的是,IT部门拒绝修复它,迫使我转而使用基于轮询的通信。哦,好吧。