最近多个网友在 Tomcat 中使用 jetbrick-template 框架的时候,碰到了下面的异常。
经过各种途径了解下来,可能引发 ClientAbortException 的原因:
1:服务器的并发连接数超过了其承载量,服务器会将其中一些连接Down掉 2:客户关掉了浏览器,而服务器还在给客户端发送数据(取消文件下载) 3:浏览器端按了Stop 4:服务器给客户端响应结果给防火墙拦截了 5:文件超大,浏览器接受超时,主动关闭了连接(下载大图片等) 6:Content-Length大小不正确,导致浏览器接受数据异常。
而目前看下来,实际情况上是第五种(显示超大图片),
在 tomcat/conf 目录下的 server.xml 文件内看到 <connector/>内有一属性 connectionTimeout (default 20000), 如果页面反应慢的时候(网速不好或是通讯通讯异常引起),页面交互时间超出了该时间, 后台便会抛出 ClientAbortException: java.io.IOException 异常。 如果将 connectionTimeout 设大之后就不会再有该问题发生。