CXF : Socket Time Out Exception



我已经使用Apache CXF实现了一个web服务。流程如下:

1。当向我们的Webservice发出请求时,我们将从中获取Input参数。2. 从获得的输入参数,我们内部调用另一个web服务。

在我的JSP中,我给出了以下

JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
 factory.setServiceClass(MyWebService.class);
 factory.setAddress(host);
     MyWebService client = (MYWebService) factory.create();
     Client clientProxy = ClientProxy.getClient(client);
          HTTPConduit conduit = (HTTPConduit) clientProxy.getConduit();
          HTTPClientPolicy policy = new HTTPClientPolicy();
          policy.setConnectionTimeout(200000000);
          policy.setReceiveTimeout(10000000);
          conduit.setClient(policy);

但是仍然得到Socket超时异常

SEVERE: Servlet.service() for servlet CXFServlet threw exception
java.net.SocketException: Broken pipe
        at java.net.SocketOutputStream.socketWrite0(Native Method)
        at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
        at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
        at org.apache.coyote.http11.InternalOutputBuffer.realWriteBytes(InternalOutputBuffer.java:740)
        at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:434)
        at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:349)
        at org.apache.coyote.http11.InternalOutputBuffer$OutputStreamOutputBuffer.doWrite(InternalOutputBuffer.java:764)
        at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:126)
        at org.apache.coyote.http11.InternalOutputBuffer.doWrite(InternalOutputBuffer.java:573)
        at org.apache.coyote.Response.doWrite(Response.java:560)
        at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:353)
        at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:434)
        at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:349)
        at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:381)
        at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:370)
        at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:89)
        at com.ctc.wstx.io.UTF8Writer.write(UTF8Writer.java:139)
        at com.ctc.wstx.sw.BufferingXmlWriter.flushBuffer(BufferingXmlWriter.java:1103)
        at com.ctc.wstx.sw.BufferingXmlWriter.fastWriteRaw(BufferingXmlWriter.java:1149)
        at com.ctc.wstx.sw.BufferingXmlWriter.writeEndTag(BufferingXmlWriter.java:803)
        at com.ctc.wstx.sw.BaseNsStreamWriter.doWriteEndTag(BaseNsStreamWriter.java:669)
        at com.ctc.wstx.sw.BaseNsStreamWriter.writeEndElement(BaseNsStreamWriter.java:282)
        at org.apache.cxf.staxutils.StaxUtils.writeElement(StaxUtils.java:633)
        at org.apache.cxf.staxutils.StaxUtils.writeElement(StaxUtils.java:525)
        at org.apache.cxf.staxutils.StaxUtils.writeNode(StaxUtils.java:642)
        at org.apache.cxf.staxutils.StaxUtils.writeElement(StaxUtils.java:628)
        at org.apache.cxf.staxutils.StaxUtils.writeElement(StaxUtils.java:525)
        at org.apache.cxf.staxutils.StaxUtils.writeNode(StaxUtils.java:642)
        at org.apache.cxf.staxutils.StaxUtils.writeElement(StaxUtils.java:628)
        at org.apache.cxf.staxutils.StaxUtils.writeElement(StaxUtils.java:525)
        at org.apache.cxf.staxutils.StaxUtils.writeNode(StaxUtils.java:642)
        at org.apache.cxf.staxutils.StaxUtils.writeElement(StaxUtils.java:628)
        at org.apache.cxf.staxutils.StaxUtils.writeElement(StaxUtils.java:525)

我从我的web服务中调用其他web服务作为方法调用的方式(而不是使用JaxWsProxyFactoryBean)这会是个问题吗?

socketexception:管道破裂之前

这不是一个超时异常。这基本上表示服务器由于某种原因关闭了连接,我们无法再写入套接字。您可能需要检查服务器端日志以找出原因。

相关内容

最新更新