當我們用Servlet導出圖片,或用JSP導出excel時,會彈出一個下載窗口,這時不點下載而點取消,則報下面的異常:
ClientAbortException Caused by: java.net.SocketException: Connection reset by peer: socket write error
在網上查找了了下原因,大概歸結為:
ClientAbortException: java.net.SocketException: Connection reset by peer: socket write error的原因是由于處理http連接時,正在輸出內容時,用戶關閉了IE,會出現一個"ClientAbortException",屬于I/O處理中出現的一個異常,應用服務器應該會捕捉。
Connection reset by peer的原因:
經常出現的Connection reset by peer: 原因可能是多方面的,不過更常見的原因是:
①:服務器的并發連接數超過了其承載量,服務器會將其中一些連接Down掉;
②:客戶關掉了瀏覽器,而服務器還在給客戶端發送數據;
③:瀏覽器端按了Stop
很多人都說是客戶端造成的,沒有辦法控制,而且后臺會記錄這個異常,日志也會瘋狂爆滿,時間長了,肯定會DOWN掉的.
本人覺得大多數可能是第二條問題的原因引起的,即大多數瀏覽器阻止了窗口的彈出,相當于客戶關掉了瀏覽器,可等效于瀏覽器端按了Stop ,而這時服務器端還在給客戶端發送數據,所以產生了上異常,經過本人的測試,發現只需將網站地址(或本機地址)加入"受信任的站點"即可解決問題,因為這樣設置了以后,瀏覽器就不會阻止窗口的彈出了,這樣瀏覽器就會等到服務器端發送完數據后再進行下面的動作.因而異常就不會發生了.
大概設置方式如下:"工具->internet(選項..)->安全->受信任的站點->站點",將地址加入即可.