我收到以下错误:
javax.servlet.jsp.JspException: Broken pipe
现在我已经看到了关于套接字异常的问题/答案,但是这个错误来自不同的包。非常感谢任何帮助 顺便说一下,我在struts web app Weblogic Node日志中看到了很多这些错误,我认为它与最终用户在页面重新加载/执行下一步之前关闭他们的Web浏览器有关(数据库事务需要相当一段时间执行,从30秒到4分钟。)
答案 0 :(得分:10)
我认为这与最终用户在页面重新加载/执行下一步之前关闭其Web浏览器有关
你完全正确。当客户端通过导航,关闭选项卡/窗口,刷新请求等来中止当前请求时将抛出此异常,在请求仍在运行时。换句话说,客户端突然关闭连接,服务器端不能再写入/刷新任何字节。它通常以IOException
作为根本原因,在Tomcat和克隆的情况下,通常具有servlet容器特定子类的风格,如ClientAbortException
。如果您调查服务器日志中的整个堆栈跟踪,您会在底部的某个位置找到它。
答案 1 :(得分:1)
我确信底层包在内部使用管道将结果从a转移到b。现在B(ServletOutputStream)关闭,管道的另一端通过抛出此异常来通知它。
答案 2 :(得分:1)
HTTPRequest由一系列servlet处理,这些servlet使用管道相互连接。当浏览器放弃连接并且套接字关闭时,servlet链接管理层会捕获该连接。 servlet可能是间接捕获套接字关闭的异常,并将其作为破坏的管道。查看任何包装异常以获取更多详细信息。
答案 3 :(得分:-1)
当用户单击停止或注销或以其他方式过早中止连接时,会发生这种情况。我们可以忽略此异常。