2010-05-05 89 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

發生在用戶單擊停止,註銷或以其他方式提前中止連接時,我們可以忽略此異常。