I have implemented a Webservice using Apache CXF .
The flow is this way :
1.When a request is made to our Webservice , we will Obtain the Input parameters from it .
2. From the Obtained Input parameters we internally call another webservice .
inside my JSP i have given the following
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);
But Still am getting Socket Time Out Exception
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)
The way i am calling the other Webservice from my webservice as a Method call (And not using JaxWsProxyFactoryBean )
Will this be an issue ??
That’s not a timeout exception. That basically says the server has closed the connection for some reason and we can no longer write to the socket. You would likely need to check the server side logs to figure out why.