org.apache.catalina.connector.ClientAbortException

14 篇文章 0 订阅
3 篇文章 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

 

 

 

源在tomcat会抛出ClientAbortException

我提供一个解决办法如下,根据实际情况你可以再修改。

1、

<action name="down" class="action.DownLoadAction"> 
  <param name="contentType">charset="gb2312" </param> 
  <param name="inputPath">aaa.rar </param> 
  <result name="success" type="stream"> 
  <exception-mapping result="client-abort-exception" exception="org.apache.catalina.connector.ClientAbortException"></exception-mapping>
  <param name="inputName">targetFile </param> 
  <param name="contentDisposition">filename="" </param> 
  <param name="buffersize">4096 </param> 
  </result> 
</action> 


2、

<package name="default" extends="struts-default" abstract="true">
  <global-results>
  <result name="client-abort-exception">/ignore.jsp</result>
  </global-results>
</package>


3、新建一个空的文件,命名为ignore.jsp


ps: 如果你的容器不是tomcat,而是resin。那么resin有一个参数ignore-client-disconnect,直接设置一下即可,不需要做上述操作。

 

 

<package name="default" extends="struts-default" abstract="true"> <global-results> <result name="client-abort-exception">/ignore.jsp</result> </global-results> </package>

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值