小编Sre*_*omu的帖子

断开管道错误后Tomcat servlet映射错误

我们在Tomcat Version:7.0.23中实现了Servlet 3.0 AsyncContext.

它在RHEL 6.1 using OpenJDK version 1.6.0_24,64-bit服务器上运行

该应用程序在大多数情况下工作正常.当网络中存在一些干扰时,来自服务器的更新无法到达客户端,因为存在" ClientAbortException: java.net.SocketException: Broken pipe"异常.被抓住并被忽略.

这发生在线上,

asyncContext.getResponse().getWriter().println(updateStr);
Run Code Online (Sandbox Code Playgroud)

在此Tomcat疯狂之后,将URL路由到意外的servlet.例如,使用/ query到名为SessionManager的servlet的映射,URL mysite.com/index.html将路由到SessionManager servlet.只有重启tomcat才能解决问题.

有关为什么会发生这种情况以及如何解决这个问题的任何指示?

只是为了添加更多数据,以下是异常的堆栈跟踪.

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 …
Run Code Online (Sandbox Code Playgroud)

tomcat servlets

7
推荐指数
1
解决办法
1528
查看次数

标签 统计

servlets ×1

tomcat ×1