"javax.servlet.jsp.JspException: Broken pipe"这个异常表示什么?

12

我遇到了以下错误:

javax.servlet.jsp.JspException: Broken pipe

我已经看到了关于 socket 异常的问题/答案,但这个错误来自不同的包。非常感谢任何帮助。
顺便说一下,在 struts web 应用程序 Weblogic 节点日志中,我看到了很多这样的错误,我认为这可能与终端用户在页面重新加载/执行下一步(数据库事务需要相当长的时间才能执行,从30秒到4分钟不等)之前关闭了他们的web浏览器有关。

4个回答

11
您是完全正确的。当客户端在请求仍在运行时导航离开、关闭选项卡/窗口、刷新请求等,将抛出此异常。换句话说,客户端突然关闭了连接,服务器端无法再写入/刷新任何字节。通常会有一个IOException作为根本原因,通常是servlet容器特定的子类,如ClientAbortException在Tomcat和克隆版中。如果您在服务器日志中调查整个堆栈跟踪,您会在底部找到它。

1

我相信底层的包在内部使用管道传输从a到b的结果。现在B(ServletOutputStream)关闭,管道的另一端通过抛出此异常来通知。


1
HTTPRequest由一系列通过管道相互连接的Servlet处理。当浏览器放弃连接并且套接字关闭时,这将被Servlet链式管理层捕获。Servlet可能会间接地捕获套接字关闭异常,并将其作为中断的管道抛出。请查看任何包装的异常以获取更多详细信息。

-2

当用户点击停止、注销或其他意外中断连接时,就会发生这种情况。我们可以忽略这个异常。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接