`
iamxi
  • 浏览: 190894 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

“ClientAbortException: java.net.SocketException:”异常的问题

阅读更多
前几天,在做图片以stream形式输出到页面上展现的时候,后台一直报异常,且页面上图片无法正常现实。异常内容为:
ClientAbortException:  java.net.SocketException: Software caused connection abort: socket write error
at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:358)
at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:434)
at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:309)
at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:288)
at org.apache.catalina.connector.CoyoteOutputStream.flush(CoyoteOutputStream.java:98)
at javax.imageio.stream.FileCacheImageOutputStream.close(FileCacheImageOutputStream.java:213)
......

在网上找了好久,发现是个普遍问题,但原因各异,有人总结为:
1:服务器的并发连接数超过了其承载量,服务器会将其中一些连接Down掉;
2:客户关掉了浏览器,而服务器还在给客户端发送数据;
3:浏览器端按了Stop;
4:服务器给客户端响应结果给防火墙拦截了。


这些原因太过笼统,细查错误很难。
偶然在一个英文网页上看到了条有关这个异常的,本人英语水平差,只能说个大意:
这个已知异常出现在IE浏览器显示tif格式的图片的时候。

亲自试验了下,的确在chrome和火狐上显示时,后台不会报次错误,不过图片显示有点异样。因为图片是存于数据库的BLOB类型的字段中,所以一直没注意图片的格式,后来才发现,原来图片是gif格式,而我使用ImageIO.write(img, "jpeg", response.getOutputStream());输出成jpg格式的图片,以致导致IE浏览器对图片解析有问题。在此将jpeg改成gif后不再出现异常。

忙乎了一天多,结果问题出在这里。

其问题导致的原因可能是:IE浏览器在解析错误图片格式或不支持的图片格式时,可能向服务器发送了多次请求或是直接关闭了连接,从而导致了tomcat报次异常。
分享到:
评论
1 楼 zyyedna 2016-11-03  
你好,请问我用Captcha captcha = configurableCaptchaService.getCaptcha()生成的验证码默认是什么类型的呢,我验证码这块用一段时间会出现“ClientAbortException: java.net.SocketException:”异常的问题
// 取得验证码图片并输出 
BufferedImage bufferedImage = captcha.getImage();

ImageIO.write(bufferedImage, "PNG", outputStream);write这块报错

相关推荐

    org.apache.catalina.connector.ClientAbortException和TOMCAT的日志配置

    问题1:TOMCAT下载文件出错:org.apache.catalina.connector.ClientAbortException. 问题2:TOMCAT记录接收数据大小、发送数据大小和请求处理时间

    POI的学习笔记

    Apache POI是一个开源的Java API,用于处理Microsoft Office格式的文件,包括Excel (.xls, .xlsx), PowerPoint (.ppt, .pptx) 和 Word (.doc, .docx)。POI提供了一套工具集,允许开发者在不依赖Office软件的情况下,...

    java-poi-excel-导出20万条记录

    java-poi-excel-导出20万条记录

    解决struts2下载异常的jar包 struts2-sunspoter-stream-1.0.jar

    在struts2中使用result里type="stream"的结果类型时,可以实现文件的下载管理,使用时也是比较顺畅,但是当在“下载提示窗口”中点击“取消按钮”时,总是报出“java.lang.IllegalStateException”异常,异常内容...

    笔记笔记笔记

    - 使用`java.net.URLDecoder.decode()`对编码后的字符串进行解码,例如`URLDecoder.decode("%E4%BD%A0%E5%A5%BD", "UTF-8")`。 ### 5. RESTful API与注解 - **RESTful API**:一种设计网络应用程序的架构风格,其...

    springmvc提供视频播放功能时,手机端无法正常播放的解决办法

    3. **错误信息**:后台抛出`ClientAbortException`异常,提示为`IOException:null`。 4. **特殊行为**:手机默认浏览器在请求视频时,会同时向后台发送两个请求。 针对这些问题,我们首先排除了一些常见的原因,...

    struts下载

    根据给定的信息,我们可以推断出这段内容主要讨论了如何在Struts框架中实现文件下载功能,特别是关于Struts 1.x版本中的`DownloadAction`类的使用方法及其相关问题的解决策略。下面将对这些内容进行详细解析,并提供...

    Struts2下载文件点击取消出现的异常解决办法(含demo)

    在我们做struts2文件下载的时候,经常会遇到这种问题:点“打开/保存”一切正常,但当我们点击“取消”时,却报一堆的异常(其中包括ClientAbortException异常),非常让人头疼,如何彻底解决呢?附件中使用struts2-...

    struts2-sunspoter-stream-1.0.jar

    经常会遇到这种问题:点“打开/保存”一切正常,但当我们点击“取消”时,却报一堆的异常(其中包括ClientAbortException异常),附件中使用struts2-sunspoter-stream-1.0.jar插件可完美解决此类问题。

Global site tag (gtag.js) - Google Analytics