无法将消息写入OutputStream:java.net.SocketException:管道损坏

时间:2016-02-15 15:41:48

标签: java spring hibernate soap socketexception

我在运行某些测试时面临一些问题。我的申请基于: - Java1.6 - Weblogic 10.3.3 - 甲骨文 - Hibernate 3.5.3 - 春季2.5.6 - Spring Integration 1.0.3

测试本身是Web服务SOAP的一组查询。运行此测试后,应用程序在其中一个查询中抛出异常,这是日志:

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.ws.soap.axiom.AxiomSoapMessageException: Could not write message to OutputStream: java.net.SocketException: Broken pipe (errno:32); nested exception is javax.xml.stream.XMLStreamException: java.net.SocketException: Broken pipe (errno:32)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:583)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at com.jamonapi.http.JAMonServletFilter.doFilter(JAMonServletFilter.java:48)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
...
...
Caused by: org.springframework.ws.soap.axiom.AxiomSoapMessageException: Could not write message to OutputStream: java.net.SocketException: Broken pipe (errno:32); nested exception is javax.xml.stream.XMLStreamException: java.net.SocketException: Broken pipe (errno:32)
at org.springframework.ws.soap.axiom.AxiomSoapMessage.writeTo(AxiomSoapMessage.java:261)
at org.springframework.ws.transport.AbstractWebServiceConnection.send(AbstractWebServiceConnection.java:45)
at org.springframework.ws.transport.support.WebServiceMessageReceiverObjectSupport.handleConnection(WebServiceMessageReceiverObjectSupport.java:97)
at org.springframework.ws.transport.http.WebServiceMessageReceiverHandlerAdapter.handle(WebServiceMessageReceiverHandlerAdapter.java:57)
at org.springframework.ws.transport.http.MessageDispatcherServlet.doService(MessageDispatcherServlet.java:230)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
... 22 more
Caused by: javax.xml.stream.XMLStreamException: java.net.SocketException: Broken pipe (errno:32)
at org.apache.axiom.om.ds.OMDataSourceExtBase.serialize(OMDataSourceExtBase.java:91)
at org.apache.axiom.om.ds.OMDataSourceExtBase.serialize(OMDataSourceExtBase.java:125)
at org.apache.axiom.om.impl.llom.OMSourcedElementImpl.internalSerializeAndConsume(OMSourcedElementImpl.java:738)
at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:966)
at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerializeAndConsume(OMElementImpl.java:995)
at org.apache.axiom.soap.impl.llom.SOAPEnvelopeImpl.serializeInternally(SOAPEnvelopeImpl.java:254)
at org.apache.axiom.soap.impl.llom.SOAPEnvelopeImpl.internalSerialize(SOAPEnvelopeImpl.java:242)
at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerializeAndConsume(OMElementImpl.java:995)
at org.apache.axiom.soap.impl.llom.SOAPMessageImpl.internalSerialize(SOAPMessageImpl.java:73)
at org.apache.axiom.om.impl.llom.OMDocumentImpl.internalSerializeAndConsume(OMDocumentImpl.java:338)
at org.apache.axiom.om.impl.llom.OMDocumentImpl.serializeAndConsume(OMDocumentImpl.java:382)
at org.springframework.ws.soap.axiom.AxiomSoapMessage.writeTo(AxiomSoapMessage.java:255)
... 27 more
Caused by: java.net.SocketException: Broken pipe (errno:32)
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:97)
at java.net.SocketOutputStream.write(SocketOutputStream.java:141)
at weblogic.servlet.internal.ChunkOutput.writeChunkTransfer(ChunkOutput.java:507)
at weblogic.servlet.internal.ChunkOutput.writeChunks(ChunkOutput.java:486)
at weblogic.servlet.internal.ChunkOutput.flush(ChunkOutput.java:382)
at weblogic.servlet.internal.ChunkOutput$2.checkForFlush(ChunkOutput.java:580)
at weblogic.servlet.internal.ChunkOutput.write(ChunkOutput.java:306)
at weblogic.servlet.internal.ChunkOutputWrapper.write(ChunkOutputWrapper.java:146)
at weblogic.servlet.internal.ServletOutputStreamImpl.write(ServletOutputStreamImpl.java:138)
at java.io.OutputStream.write(OutputStream.java:58)
at org.springframework.ws.transport.TransportOutputStream.write(TransportOutputStream.java:56)
at org.apache.axiom.om.ds.OMDataSourceExtBase.serialize(OMDataSourceExtBase.java:89)
... 38 more

如果单独运行查询,使用SoapUI,则响应是预期的并且很好。

第一次运行测试后,它失败了,但如果我立即再次运行,测试就可以了。似乎应用程序错过了与数据库的连接,或者在查询到达时关闭。这是我正在使用的任何技术中的某种错误吗?

最好的问候。

如果需要,请询问更多信息。

0 个答案:

没有答案