posts - 60,comments - 71,trackbacks - 0

        当我们用Servlet导出图片,或用JSP导出excel时,会弹出一个下载窗口,这时不点下载而点取消,则报下面的异常:
ClientAbortException  Caused by: java.net.SocketException: Connection reset by peer: socket write error

在网上查找了了下原因,大概归结为:
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(选项..)->安全->受信任的站点->站点",将地址加入即可.

posted on 2009-03-20 18:03 henry1451 阅读(14169) 评论(7)  编辑  收藏

FeedBack:
# re: ClientAbortException 异常解决办法
2009-07-10 16:43 | veaphen
加了信任站点还是一样报错啊,只要点“取消”按钮就报了  回复  更多评论
  
# re: ClientAbortException 异常解决办法
2009-08-04 17:19 | 异常
方法即使能解决也不可取,对于一个目标用户不确定的服务器,如何解决这种问题?
These messages are harmless and tend to occur when a user clicks to view an asset in the system, but clicks away (to another asset) before the first asset finishes loading.

可能原因:用户点击访问,但没等收到响应就
1、点击关闭按钮;
2、又访问另一URL;
3、网络断开?
  回复  更多评论
  
# re: ClientAbortException 异常解决办法
2009-12-30 10:07 | 柴生
我也有这个现象,当不停的点不同的菜单,菜单多点几下,服务器就不停的写这些错误日志。  回复  更多评论
  
# re: ClientAbortException 异常解决办法
2011-11-21 16:55 | 小曾
这个异常的确是客户端造成的,比如说文件流正在下载文件,客户突然点击取消,但是文件流已经读到内存了,却没有输出到客户端,就会造成内存溢出,我这段时间专门研究这个,却没办法解决:i没办法回收残留在内存的垃圾85583755
  回复  更多评论
  
# re: ClientAbortException 异常解决办法
2011-12-10 20:28 | q
a  回复  更多评论
  
# re: ClientAbortException 异常解决办法
2011-12-10 20:29 | q
。。。。。。。  回复  更多评论
  
# re: ClientAbortException 异常解决办法
2016-04-19 16:54 | 换浏览器后可以了
换浏览器后可以了  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问