標籤:頁面 響應 puts 拋出異常 apach 異常 java.net util 內容
在做一個小網站的時候,寫了一個通過servlet實現檔案下載功能的頁面。當我點擊超級練級,彈出下載對話方塊,點擊儲存正常下載,不會出現任何問題,當我我點擊取消,伺服器端就出現如下提示:
ClientAbortException: java.net.SocketException: Connection reset by peer: socket write error
at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:366)
at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:433)
at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:348)
at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:392)
at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:381)
at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:88)
at com.lab.servlet.FileDownload.doGet(FileDownload.java:92)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Unknown Source)
Caused by: java.net.SocketException: Connection reset by peer: socket write error
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(Unknown Source)
at java.net.SocketOutputStream.write(Unknown Source)
at org.apache.coyote.http11.InternalOutputBuffer.realWriteBytes(InternalOutputBuffer.java:746)
at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:433)
at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:348)
at org.apache.coyote.http11.InternalOutputBuffer$OutputStreamOutputBuffer.doWrite(InternalOutputBuffer.java:769)
at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:125)
at org.apache.coyote.http11.InternalOutputBuffer.doWrite(InternalOutputBuffer.java:579)
at org.apache.coyote.Response.doWrite(Response.java:559)
at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:361)
... 22 more
說明:
網上搜了一下,大致出現問題的原因如下:
1、這個問題一般是用戶端在串連還沒有完全建立的時候就取消串連,比如使用者按了瀏覽器上面的“停止”按鈕,一般來說沒有什麼問題。但是如果頻繁出現,就表示很多用戶端串連到Apache伺服器的回應時間太長了,可能是網路的問題或者伺服器效能問題 可能你的網路連接存在一些問題,你的資料轉送的時候,可能由於時間等待的太久,但是server段設定的串連檢驗時間限制一定,那麼就可能出現這種情況的!
2、ClientAbortException: java.net.SocketException: Connection reset by peer: socket write error的原因是由於處理http串連時,正在輸出內容時,使用者關閉了IE,會出現一個"ClientAbortException",屬於I/O處理中出現的一個異常,應用伺服器應該會捕捉。
3、應該是線程被佔用的太多了 無法控制了
我想可能會是:資料庫庫串連達到極限,.應用伺服器 最大線程並發數 達到極限,記憶體耗盡。
目前沒有找到好的解決辦法。。。
Tomcat拋出異常:ClientAbortException: java.net.SocketException: Connection