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