ClientAbortException:java.io.IOException

ClientAbortException:java.io.IOException解决方案

  (2014-07-24 09:45:08)
标签: 

clientabortexception

 

it

分类: J2EE框架
ERROR [http-8080-5]: (ExportPdfController.java:196) - 
ClientAbortException java.io.IOException
at 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 byjava.io.IOException
at 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引起的,导致前面的请求被中断。改成 或者 问题就解决了  主要是懒复制前面的写法了 要是自己写的话也肯定是也不会写成这种形式。 所以建议楼主还是从请求为什么会被中断着手去找原因吧。看看在输出流在还没有结束的时候是不是又发送了新的请求。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ClientAbortException: java.io.IOException: Broken pipe是一个Java异常,表示管道中的数据流突然中断。这个异常通常发生在以下几种情况下:\[2\] 1. 客户端在发起请求后没有等待服务器端响应,而是点击了停止按钮,导致服务器端接收到取消请求。这种情况通常发生在频繁刷新页面的情况下。 2. 客户端发送请求连接时间设置过短,导致后台服务器没有处理完响应,客户端就断开了连接。这种情况比较常见。 3. Web服务器(如Tomcat)在接收用户请求时由于处理能力限制,如线程、内存、服务器等资源限制,超出了其承载范围的请求,就会被服务器停掉,也可能导致该错误。 要解决这个问题,可以考虑以下几个方面:\[1\]\[3\] 1. 增加客户端请求连接的超时时间,确保服务器有足够的时间来处理请求。 2. 优化服务器的处理能力,增加线程数、内存等资源,以提高服务器的承载能力。 3. 避免频繁刷新页面或者点击停止按钮,确保客户端在发起请求后等待服务器端响应。 4. 检查网络连接是否稳定,避免网络中断导致的数据流中断。 总之,解决ClientAbortException: java.io.IOException: Broken pipe的方法包括优化客户端和服务器的设置,确保稳定的网络连接,以及避免频繁刷新页面或点击停止按钮。 #### 引用[.reference_title] - *1* [ClientAbortException: java.io.IOException: Broken pipe 解决](https://blog.csdn.net/qq_24298751/article/details/126023324)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [解析org.apache.catalina.connector.ClientAbortException: java.io.IOException: Broken pipe](https://blog.csdn.net/qq_40223688/article/details/102487757)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [org.apache.catalina.connector.ClientAbortException: java.io.IOException: Broken pipe](https://blog.csdn.net/weixin_43997319/article/details/123335570)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值