標籤:user sock 代碼 soc prot 請求 發送 object file
org.apache.catalina.connector
Class ClientAbortException
java.lang.Object
java.lang.Throwable
java.lang.Exception
java.io.IOException
org.apache.catalina.connector.ClientAbortException
-
All Implemented Interfaces:
-
java.io.Serializable
ERROR [http-8080-5]: (ExportPdfController.java:196) - ClientAbortException: java.io.IOExceptionat org.apache.catalina.
connector.OutputBuffer.realWriteBytes(OutputBuffer.java:369)at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:368)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:89)at java.io.ByteArrayOutputStream.writeTo(ByteArrayOutputStream.java:109)at com.shihuan.web.controller.ExportPdfController.writefile(ExportPdfController.java:189)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)at java.lang.reflect.Method.invoke(Method.java:597)at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176)at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:426)at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:414)at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)at org.apache.catalina.
connector.CoyoteAdapter.service(CoyoteAdapter.java:293)at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:879)at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:600)at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1703)at java.lang.Thread.run(Thread.java:619)WARN [http-8080-4]: (MyInterceptor.java:60) - 調用方法:com.shihuan.web.controller.ExportPdfController.writefile(); 花費時間:153 ms.返回網頁:原網頁Caused by: java.io.IOExceptionat org.apache.coyote.http11.InternalAprOutputBuffer.flushBuffer(InternalAprOutputBuffer.java:712)at org.apache.coyote.http11.InternalAprOutputBuffer$SocketOutputBuffer.doWrite(InternalAprOutputBuffer.java:742)at org.apache.coyote.http11.filters.IdentityOutputFilter.doWrite(IdentityOutputFilter.java:118)at org.apache.coyote.http11.InternalAprOutputBuffer.doWrite(InternalAprOutputBuffer.java:552)at org.apache.coyote.Response.doWrite(Response.java:560)at org.apache.catalina.
connector.OutputBuffer.realWriteBytes(OutputBuffer.java:364)... 35 more ------------------------------------------------------------------------------------------------------------------- 上述問題分析:在網上尋找了了下原因,大概歸結為:
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(選項..)->安全->受信任的網站->網站",將地址加入即可避免這個異常。 ------------------------------------------------------------------------------------------------------------------- 今天也遇到這個問題了,查看了下tomcat源碼對於這個異常的描述無非也就是說請求被中斷,我的原因是由於調用匯出檔案方法是用這樣子的代碼的
先執行了onclick中js 然後又去執行了href中js引起的,導致前面的請求被中斷。改成 或者 問題就解決了 主要是懶複製前面的寫法了 要是自己寫的話也肯定是也不會寫成這種形式。 所以建議樓主還是從請求為什麼會被中斷著手去找原因吧。看看在輸出資料流在還沒有結束的時候是不是又發送了新的請求。 本文轉自http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece7631046893b4c4380147d8c8c4668d4e419ce3b4c413037bfa6663f405a8e906b6075a91d57eaf76223360123b59b8fc20bdfac925f75ce786a6459db0144dc48f2971a729066cd1afeae69f0ba872592de838d84030f8c005527c0b6dc1051438829ab496df4a7e95f142c&p=9765c64ad4934eac59eecb685f0e89&newp=c272ce1785cc43ec10bd9b7d0c1580231610db2151d7d1156b82c825d7331b001c3bbfb42324110fd8c27a6d01ad4d56edf33473340127a3dda5c91d9fb4c57479cb6f&user=baidu&fm=sc&query=connector%2EClientAbortException%3A&qid=a9c593a8000392fe&p1=4
ClientAbortException:java.io.IOException解決方案