java.net.SocketException: Connection reset和之间有什么区别java.net.SocketException: Broken Pipe?
我想弄清楚这两个例外的原因是什么.我们的服务器上出现以下错误,基本上是基于SOAP的Web服务.当我尝试中止客户端调用我看到的异常是Broken pipe ...
以下是我们的堆栈跟踪,任何帮助表示赞赏!
2011-01-10 00:44:33,828 96893947 INFO [STDOUT] (http-0.0.0.0-8180-Processor25:) ERROR: ''
2011-01-10 00:44:33,829 96893948 INFO [STDOUT] (http-0.0.0.0-8180-Processor25:) Jan 10, 2011 12:44:33 AM com.sun.xml.rpc.server.http.JAXRPCS
ervletDelegate doGetDefault
SEVERE: JAXRPCSERVLET34: transformation failed : ClientAbortException: java.net.SocketException: Connection reset
JAXRPCSERVLET34: transformation failed : ClientAbortException: java.net.SocketException: Connection reset
at com.sun.xml.rpc.server.http.WSDLPublisher.handle(WSDLPublisher.java:109)
at com.sun.xml.rpc.server.http.JAXRPCServletDelegate.doGetDefault(JAXRPCServletDelegate.java:185)
at com.sun.xml.rpc.server.http.JAXRPCServletDelegate.doGet(JAXRPCServletDelegate.java:153)
at com.sun.xml.rpc.server.http.JAXRPCServlet.doGet(JAXRPCServlet.java:111)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
--
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
2011-01-10 00:44:33,829 96893948 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/soa].[UserService]] (http-0.0.0.0-81
80-Processor25:) Servlet.service() for servlet UserService threw exception
javax.servlet.ServletException: JAXRPCSERVLET34: transformation failed : ClientAbortException: java.net.SocketException: Connection reset
at com.sun.xml.rpc.server.http.JAXRPCServletDelegate.doGetDefault(JAXRPCServletDelegate.java:347)
at com.sun.xml.rpc.server.http.JAXRPCServletDelegate.doGet(JAXRPCServletDelegate.java:153)
at com.sun.xml.rpc.server.http.JAXRPCServlet.doGet(JAXRPCServlet.java:111)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
Run Code Online (Sandbox Code Playgroud)
二者Connection reset并Broken pipe当连接已被所述对等(即应用程序保持在其另一侧的连接)关闭发生。
Connection reset写入(参见java.net.SocketOutputStream)或读取(参见java.net.SocketInputStream)时可能发生。
Broken pipe发生在以下的 Native 方法中java.net.SocketException:
java.net.SocketException: Broken pipe
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
Run Code Online (Sandbox Code Playgroud)
因此,Broken pipe正如迈克尔·博格沃特 (Michael Borgwardt) 所建议的那样,发生在较低的通信级别。
在大多数情况下,我在向客户端浏览器发送大 PDF 时看到此错误,并且用户在获取整个文档之前终止浏览器(在这种情况下,我只是忽略该错误,因为这是用户选择关闭其浏览器,然后没什么好纠正的)。但也可能是其他原因(例如EJP 建议更多与数据通信协议相关的原因)。
| 归档时间: |
|
| 查看次数: |
7850 次 |
| 最近记录: |