2010-05-05 40 views
10

我收到以下错误:“javax.servlet.jsp.Jsp.JspException:Broken pipe”意味着什么异常?

 
javax.servlet.jsp.JspException: Broken pipe 

现在,我已经看到了问题/与​​敬意插座例外答案,但这个错误是从不同的包来。任何帮助是极大的赞赏。
顺便说一句,我在一个struts Web应用程序Weblogic节点日志中看到了很多这些错误,我认为它与最终用户在页面重新加载/执行下一步之前关闭其Web浏览器有关(数据库事务需要相当多的时间来执行,从30秒到4分钟)。

回答

10

I am thinking that it has to do with end users closing their web browser before the page reloads/executes the next step

你是完全正确的。当客户端通过导航离开,关闭标签页/窗口,刷新请求等中止当前请求时,将抛出此异常请求仍在运行。换句话说,客户端突然关闭连接,服务器端不能再写/刷新任何字节。它通常有一个IOException作为根本原因,通常在ServletContainer特定子类的味道中,例如Tomcat和克隆中的ClientAbortException。如果您调查服务器日志中的整个堆栈跟踪,则会在底部找到它。

1

我确定底层包在内部使用管道将结果从a传递给b。现在B(ServletOutputStream)关闭,管道的另一端通过抛出这个异常来通知它。

1

HTTPRequest由一系列使用管道相互连接的servlet处理。当浏览器放弃连接并关闭套接字时,servlet链接管理层会捕获该连接。该小服务程序可能间接捕获了套接字关闭异常,并将其作为断开的管道进行传播。查看任何包装的异常以获取更多详细信息

-1

发生在用户单击停止,注销或以其他方式提前中止连接时,我们可以忽略此异常。