【IE下載文件——后台報ClientAbortException:java.io.IOException錯誤】


一.場景

  頁面上提供下載Excel文件的功能,用於下載報表中的數據。

  分別在chrome,IE中進行測試。在chrome中正常,在IE中后台報錯。

二.錯誤信息

org.apache.catalina.connector.ClientAbortException: java.io.IOException
    at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:407)
    at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:371)
    at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:432)
    at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:420)
    at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:91)
    at jxl.write.biff.CompoundFile.writeExcelData(CompoundFile.java:249)
    at jxl.write.biff.CompoundFile.write(CompoundFile.java:233)

    at jxl.write.biff.File.close(File.java:95)
    at jxl.write.biff.WritableWorkbookImpl.close(WritableWorkbookImpl.java:352)

Caused by: java.io.IOException
    at org.apache.coyote.http11.InternalAprOutputBuffer.flushBuffer(InternalAprOutputBuffer.java:205)
    at org.apache.coyote.http11.InternalAprOutputBuffer.access$100(InternalAprOutputBuffer.java:37)
    at org.apache.coyote.http11.InternalAprOutputBuffer$SocketOutputBuffer.doWrite(InternalAprOutputBuffer.java:235)
    at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:119)

三.解決方案

<一>錯誤分析

   1.從網上查找,ClientAbortException: java.net.SocketException: Connection reset by peer: socket write error的原因是由於處理http連接時,正在輸出內容時,用戶關閉了IE,會出現一個"ClientAbortException",屬於I/O處理中出現的一個異常,應用服務器應該會捕捉。

 2. 客戶端造成的,沒有辦法控制,而且后台會記錄這個異常。

 3.我發下並沒有在輸入的時候關閉瀏覽器的操作,不過可以確定一點是IE瀏覽器連接之后,強制關閉造成的IO異常,導致客戶端請求中斷;

<二>問題根源

  操作中發現,IE這個時候下載的動作不是瀏覽器自身的下載器進行的,而是迅雷插件執行的下載動作。如圖,

      

  因此,我就想會不會是迅雷的組件阻斷了IE下載器的請求,導致后台報錯。

  於是,我想辦法恢復IE默認的下載器的功能。過程如下,

  (1)Internet選項,打開 ”管理下載項“:

  (2)在工具和擴展中找到了,迅雷下載支持,並且是啟用的,然后禁用它:

    

  (3)重啟 IE之后:進行下載操作,結果一切正常,問題解決:

 

        

         查看后台沒有報錯信息。問題解決。

    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM