【发布时间】:2014-12-05 12:11:06
【问题描述】:
我们有一个设置,其中一个应用程序(协调器)将任务委托给另一个应用程序(工作人员),他们完成任务并通过套接字推回结果。
它工作正常,但在一台机器上,大多数工人都遇到了管道破裂错误。 一切都在同一台机器上,我们也检查了防火墙设置,它们看起来很好。
我只是想知道如果将机器名称或 IP 替换为 loopbackaddress 是否会有所帮助,因为 loopbackaddress 没有任何关联的硬件?
如果您有任何其他建议,请分享您对此的看法。
异常跟踪 -
javax.servlet.ServletException: Error building response envelope: ClientAbortException: java.net.SocketException: Broken pipe
at org.apache.soap.server.http.RPCRouterServlet.doPost(RPCRouterServlet.java:418)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:774)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703)
at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:896)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
at java.lang.Thread.run(Thread.java:619)
感谢您的帮助
谢谢
【问题讨论】:
-
相关的错误信息是什么?
-
已在问题中编辑并添加了堆栈跟踪。谢谢
-
嗯,好的。因此,连接已经建立,但随后被残酷地关闭。不错!
-
是的,一切都在同一台机器上。我们使用机器名来建立连接。我只是想(可能很傻)如果使用环回地址可以有任何帮助,因为它与硬件无关。
-
服务器端没有日志吗?如果没有那就奇怪了。如果没有,那么,配置它以添加日志记录。
标签: java sockets network-programming broken-pipe