最近也遇到了ClientAbortException:socket write error这个错误,但具体情况可能和大家遇到的不一样,我慢慢道来。
环境为:tomcat 5.5 + hibernate 3.1 + spring + velocity + webwork2.2,这是大体的环境。我是在webwork的action里用Velocity做的视图,关键代码如下:
#foreach($result in $resultList)
<li>相册名称:$!result.name</li>
<li>$!result.images.size()张照片</li>
#end
其中$!resultList是一组相册对象的集合,引起错误的代码就是$!result.images.size(),因为这是在循环里面,而images是相册这个对象里的一个set,即表示相册的图片集合。结果日志里就出现了如下错误(注意:但页面一切正常,结果也是正确的):
Unable to render Velocity Template, '/template/xhtml/album/myAlbum.htm'>
ClientAbortException: java.net.SocketException: Software caused connection abort: socket write erro
猜想,没有把握的事情,也只能用猜想这个字眼了。hibernate 的延迟加载我设置的是true,则计算result.images.size()时会有延迟的,但又在一个循环里,因此有可能发生此错误。只是猜想而已,呵呵,哪位大人路过看到,还望指正,小弟不胜感激!
引入一些前人,前辈们的总结供大家参考:
------------------------------------------------------------------
经常出现的Connection reset by peer: 原因可能是多方面的,不过更常见的原因是:
①:服务器的并发连接数超过了其承载量,服务器会将其中一些连接Down掉;
②:客户关掉了浏览器,而服务器还在给客户端发送数据;
③:浏览器端按了Stop
4 :工程中使用了hibernate,自己写了个filter类,在每个request收到时打开session,在结束时关闭,编程时一直觉得很方便,没想到就是因为这个造成这个错误的。
理想情况下这个错误可能永远也不会,但是如果流程中的某一步被阻塞的话,那在这期间connection就一直被占用而不释放。最有可能被阻塞的就是在JSP生成html页面代码这步,一方面可能是页面内容大,response.write的时间长,另一方面可能是用户的网速慢,服务器与用户间传输时间久。当大量这样的情况出现时,就有连接池连接不足,造成页面假死现象,这时就会报如上错误。
分享到:
相关推荐
问题1:TOMCAT下载文件出错:org.apache.catalina.connector.ClientAbortException. 问题2:TOMCAT记录接收数据大小、发送数据大小和请求处理时间
21:23:44,676 WARN StreamResult:45 - StreamResultX Warn : socket write error 如果出现该警告说明正确执行,该警告说明,Socket非正常中断,但是流确实已经关闭,自此再也不用看到上面出现的讨厌异常结果。 ...
### POI学习笔记知识点解析 #### 一、POI简介 Apache POI是一个开源的Java API,用于处理Microsoft Office格式的文件,包括Excel (.xls, .xlsx), PowerPoint (.ppt, .pptx) 和 Word (.doc, .docx)。...
java-poi-excel-导出20万条记录
根据提供的信息,我们可以总结出... error: function(xhr, status, error) { // 处理错误情况 } }); ``` 以上是根据提供的信息整理的Java相关知识点。希望这些内容能够帮助你更好地理解和掌握Java及其相关技术。
3. **错误信息**:后台抛出`ClientAbortException`异常,提示为`IOException:null`。 4. **特殊行为**:手机默认浏览器在请求视频时,会同时向后台发送两个请求。 针对这些问题,我们首先排除了一些常见的原因,...
在我们做struts2文件下载的时候,经常会遇到这种问题:点“打开/保存”一切正常,但当我们点击“取消”时,却报一堆的异常(其中包括ClientAbortException异常),附件中使用struts2-sunspoter-stream-1.0.jar插件可...
在我们做struts2文件下载的时候,经常会遇到这种问题:点“打开/保存”一切正常,但当我们点击“取消”时,却报一堆的异常(其中包括ClientAbortException异常),非常让人头疼,如何彻底解决呢?附件中使用struts2-...
- **ClientAbortException**:当客户端中断连接时可能会抛出`ClientAbortException`。这通常是由于网络问题或客户端操作导致的。 #### 4. 其他注意事项 - 在实际开发中,建议使用Apache Commons IO库中的`IOUtils....