2012-07-19 12 views
6

Hemos implementado Servlet 3.0 AsyncContext en Tomcat Version: 7.0.23.Error de mapeo de servlet de Tomcat después de error de tubería rota

Se runing en RHEL 6.1 using OpenJDK version 1.6.0_24,64-bit servidor

La aplicación está trabajando muy bien para la mayor parte. Cuando hay alguna perturbación en la red, la actualización del servidor no puede llegar al cliente ya que hay una excepción "ClientAbortException: java.net.SocketException: Broken pipe". que es atrapado e ignorado

Esto sucede en la línea,

asyncContext.getResponse().getWriter().println(updateStr); 

Después de este Tomcat vuelve loco y es de enrutamiento URLs a servlets inesperados. Por ejemplo, con una asignación de/consulta a un servlet llamado SessionManager, la dirección URL mysite.com/index.html se enruta al servlet de SessionManager. Solo el reinicio de tomcat resuelve el problema.

¿Alguna sugerencia sobre por qué sucede esto y cómo solucionarlo?

Solo para agregar más datos, el siguiente es el seguimiento de la pila de la excepción.

ClientAbortException: java.net.SocketException: Broken pipe 
    at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:346) 
    at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:306) 
    at org.apache.catalina.connector.Response.flushBuffer(Response.java:568) 
    at org.apache.catalina.connector.ResponseFacade.flushBuffer(ResponseFacade.java:307) 
    at com.management.TestHandler$TestInfo.statusUpdate(TestHandler.java:638) 
    at com.chakra.ipbtt.TestObject.publish(TestObject.java:1626) 
    at com.chakra.ipbtt.TestObject.handlePublish(TestObject.java:1421) 
    at com.chakra.ipbtt.TestObject.executeCommand(TestObject.java:1371) 
    at com.chakra.ipbtt.TestObject.executeCommand(TestObject.java:1388) 
    at com.chakra.ipbtt.TestObject.executeCommand(TestObject.java:1388) 
    at com.chakra.ipbtt.TestObject.executeCommand(TestObject.java:1388) 
    at com.chakra.ipbtt.TestObject.executeCommand(TestObject.java:1388) 
    at com.chakra.ipbtt.TestObject.executeCommand(TestObject.java:1388) 
    at com.chakra.ipbtt.TestObject.executeTest(TestObject.java:1791) 
    at com.management.TestHandler.executeTest(TestHandler.java:420) 
    at com.management.TestHandler.handleNewTest(TestHandler.java:222) 
    at com.management.TestMgr.processRequest(TestMgr.java:71) 
    at com.management.TestMgr.doPost(TestMgr.java:105) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:641) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:690) 
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:477) 
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:402) 
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:329) 
    at com.management.SessionMgr.processRequest(SessionMgr.java:131) 
    at com.management.SessionMgr.doPost(SessionMgr.java:164) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:641) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at com.management.SessionsFilter.doFilter(SessionsFilter.java:127) 

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) 
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1001) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585) 
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 
    at java.lang.Thread.run(Thread.java:636) 

Caused by: java.net.SocketException: Broken pipe 
    at java.net.SocketOutputStream.socketWrite0(Native Method) 
    at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:109) 
    at java.net.SocketOutputStream.write(SocketOutputStream.java:153) 
    at org.apache.coyote.http11.InternalOutputBuffer.realWriteBytes(InternalOutputBuffer.java:215) 
    at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:462) 
    at org.apache.coyote.http11.InternalOutputBuffer.flush(InternalOutputBuffer.java:119) 
    at org.apache.coyote.http11.AbstractHttp11Processor.action(AbstractHttp11Processor.java:789) 
    at org.apache.coyote.Response.action(Response.java:174) 
    at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:341) 
    ... 48 more` 
+1

Hola, ¿encontró alguna solución o la causa? –

Respuesta

0

Suena como un error en el costado de Tomcat.

Primero, intentaría actualizar a Apache Tomcat 7.0. .

En segundo lugar, intentaría actualizar a Java 6u .

Cuestiones relacionadas