We have a bunch of CXF web services running in weblogic 10.3.0.0.
In sporadic situations, it looks like the network layer is not able to read the XML stream and weblogic server is throwing
the following error. Our service consumers are saying that they are receiving the XML stream or read time out exceptions sporadically. Application log is showing java.net.SocketException
.
Also service consumers are saying that if they submit the same request
again, they receive the proper response without any issues.
Following is the log for the issues. This log is from weblogic's managed server (not application log) Also, I pasted below the header details for successful calls.
####<May 3, 2012 6:21:44 PM CDT> <Error> <HTTP> <xxxxxxxx.yyyyyyyy.com> <server2> <[ACTIVE] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <> <1336087304531> <BEA-101108> <[weblogic.servlet.internal.WebAppServletContext@58320dc6 - appName: 'webservice-aa-bb-1', name: 'webservice-aaa', context-path: '/webservice-aaa', spec-version: 'null'] Unsupported encoding: "utf-8";action="" specified.
java.io.UnsupportedEncodingException: Unsupported Encoding utf-8";action="
at weblogic.servlet.internal.ServletRequestImpl.setCharacterEncoding(ServletRequestImpl.java:428)
at weblogic.servlet.internal.ServletRequestImpl.initRequestEncoding(ServletRequestImpl.java:1115)
at weblogic.servlet.internal.ServletRequestImpl.getCharacterEncoding(ServletRequestImpl.java:451)
at org.apache.cxf.transport.http.HttpServletRequestSnapshot.<init>(HttpServletRequestSnapshot.java:69)
at org.apache.cxf.transport.http.AbstractHTTPDestination$1.cacheInput(AbstractHTTPDestination.java:245)
at org.apache.cxf.transport.http.AbstractHTTPDestination.cacheInput(AbstractHTTPDestination.java:441)
at org.apache.cxf.transport.http.AbstractHTTPDestination.flushHeaders(AbstractHTTPDestination.java:453)
at org.apache.cxf.transport.http.AbstractHTTPDestination.flushHeaders(AbstractHTTPDestination.java:446)
at org.apache.cxf.transport.http.AbstractHTTPDestination$WrappedOutputStream.onFirstWrite(AbstractHTTPDestination.java:589)
at org.apache.cxf.io.AbstractWrappedOutputStream.write(AbstractWrappedOutputStream.java:42)
at org.apache.cxf.io.CacheAndWriteOutputStream.write(CacheAndWriteOutputStream.java:68)
at com.ctc.wstx.io.UTF8Writer.flush(UTF8Writer.java:96)
at com.ctc.wstx.sw.BufferingXmlWriter.flush(BufferingXmlWriter.java:214)
at com.ctc.wstx.sw.BufferingXmlWriter.close(BufferingXmlWriter.java:194)
at com.ctc.wstx.sw.BaseStreamWriter.finishDocument(BaseStreamWriter.java:1685)
at com.ctc.wstx.sw.BaseStreamWriter.writeEndDocument(BaseStreamWriter.java:585)
at org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor$SoapOutEndingInterceptor.handleMessage(SoapOutInterceptor.java:282)
at org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor$SoapOutEndingInterceptor.handleMessage(SoapOutInterceptor.java:270)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263)
at org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:104)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:323)
at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:118)
at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:208)
at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:223)
at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:205)
at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:113)
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:184)
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:107)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:163)
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:292)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3498)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(Unknown Source)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
Following is the header details in our debug logs. This header has reponded successful response. I could not catch the header for unsuccessful service requests.
[________,[ACTIVE] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)']:D: 03 18:01:41.417: ResponseTimeInInterceptor.handleMessage: HTTP Header :::::: Accept : application/soap+xml, multipart/related, text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
[________,[ACTIVE] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)']:D: 03 18:01:41.418: ResponseTimeInInterceptor.handleMessage: HTTP Header :::::: X-dynaTrace : FW0;-705664711;1266;3;964372818;3656;2
[________,[ACTIVE] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)']:D: 03 18:01:41.418: ResponseTimeInInterceptor.handleMessage: HTTP Header :::::: User-Agent : Jakarta Commons-HttpClient/3.1
[________,[ACTIVE] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)']:D: 03 18:01:41.418: ResponseTimeInInterceptor.handleMessage: HTTP Header :::::: Host : abcd.efg.hjk.com
[________,[ACTIVE] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)']:D: 03 18:01:41.418: ResponseTimeInInterceptor.handleMessage: HTTP Header :::::: Content-Length : 496
[________,[ACTIVE] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)']:D: 03 18:01:41.419: ResponseTimeInInterceptor.handleMessage: HTTP Header :::::: Content-Type : application/soap+xml;charset="utf-8";action=""
Thanks in Advance.