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

标签 java tomcat jax-ws

我有一个基于 Java 的客户端,它通过 JAX-WS 从 Tomcat 6.0.24 服务器 web 应用程序接收数据。我最近使用新功能升级了服务器,某些输入可能需要很长时间(超过 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 包。

最重要的是,我不知道这里发生了什么。请注意,新功能确实在不需要运行太长时间时起作用。另请注意,新功能响应的大小并没有比平时大多少——只是需要更长的计算时间。

最佳答案

最终,问题是由服务器公共(public)网关上的某种反 DoS 措施引起的。不幸的是,IT 部门拒绝修复它,迫使我切换到基于轮询的通信。好吧。

关于java - JAX-WS Web 服务在客户端上收到 400 Bad Request 错误,在服务器上收到 Broken Pipe 错误以进行长时间操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23891035/

相关文章:

java - 通过使用 JAVA 给出特定 id - JSON 文件来获取特定值

java.sql.SQLException : Parameter index out of range (1 > number of parameters, 为 0)

java - Android AsyncTask 订单服务器连接

java - 如何更改 JAX-WS webservice 的地址位置

java - 使用 codehaus jaxws-maven-plugin 重命名 JAX-WS 服务类的正确方法是什么?

Python 使用子进程 :Invalid maximum heap size 启动 Java 应用程序

java - 仅提示来自特定 servlet 的(任何)客户端证书

java - spring.mvc.view.prefix 和 spring.mvc.view.suffix 必须是什么?

java - 一个或多个监听器无法启动 SringMVC 电子商务项目

java - 在 Spring 中使用 JAX-WS 对 Web 服务客户端进行摘要式密码身份验证