关于:org.apache.catalina.connector.ClientAbortException及getOutputStream() has already been called for this response的异常处理
1.异常场景:
在进行将数据用word导出或者Excel导出的时候。抛出的异常getOutputStream() has already been called for this response
导致的原因:
出现这个异常是由于多次调用了response.getOutputStream() 或者在代码中既用了response.write(),也用了getOutputStream()导致出现的冲突,所引起的异常。在我的代码中,导出文件是采用了getOutputStream()的方式,而在统一异常处理中是使用了out.write()的方式向页面中输出错误信息引起的。
解决方案:所以只需改成相同的方式就可以了。或者在调用玩getOutputStream()方法完成时,显式的关闭这个输出流就可以。
2.异常场景:
在进行将数据用word导出或者Excel导出的时候。抛出的异常org.apache.catalina.connector.ClientAbortException:java.io.IOException。后端代码中没有错误,在前端页面中也没有发现其他错误。就是到点击导出按钮时,有时会抛出这个异常,有时不会抛出这个异常。随机出现。
导致原因:
出现这个异常是由于在向页面中输出信息的过程中,信息还没用输出完成,页面就已经关闭了或页面已经刷新了,导致输出流中断异常。而我的场景时,点击导出后,弹出框将会关闭,而在这个过程中,后台响应没有那么快,输出过程中窗口已经关闭了。
解决方案:
1.前端页面中采用Ajax异步调用的方式,待页面完成响应完成后,将弹出框关闭;
2.最笨的方法就是不关闭,禁用关闭按钮,待响应完成后,开启按钮,让用户关闭。
关于:org.apache.catalina.connector.ClientAbortException及getOutputStream() has already been called for this response的异常处理的更多相关文章
- (后台)org.apache.catalina.connector.ClientAbortException: null
比如错误日志是这样的: org.apache.catalina.connector.ClientAbortException: null 那么问题基本上就是服务器准备进行response的时候,发现连 ...
- 再见:org.apache.catalina.connector.ClientAbortException: java.io.IOException: Connection reset by peer
这个问题我之前遇见多次了,今天又遇见了 2019-03-22 16:33:27.555 WebMvcConfigurer.java:144 ERROR - 接口 [/appservice/7za.ex ...
- org.apache.catalina.connector.ClientAbortException
记个tomcat常见流输出中断异常 org.apache.catalina.connector.ClientAbortException: java.net.SocketException: Conn ...
- 线上问题!----------org.apache.catalina.connector.ClientAbortException: java.io.IOException: Broken pipe
1.问题出现 昨晚项目在上线的时候因为推广的原因,新增的大量请求.在八点的时候. org.apache.catalina.connector.ClientAbortException: java.io ...
- org.apache.catalina.connector.ClientAbortException: java.io.IOException: APR error:-32
org.apache.catalina.connector.ClientAbortException: java.io.IOException: APR error:-32 Most likely, ...
- org.apache.catalina.connector.ClientAbortException: java.io.IOException: 您的主机中的软件中止了一个已建立的连接。
日志文件中有“java.io.IOException: 您的主机中的软件中止了一个已建立的连接.”错误 org.apache.catalina.connector.ClientAbortExcepti ...
- org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。
org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接. at org ...
- Spring文件上传出错:java.lang.ClassCastException: org.apache.catalina.connector.Request
java.lang.ClassCastException: org.apache.catalina.connector.RequestFacade cannot be cast to org.spri ...
- java.lang.IllegalStateException at org.apache.catalina.connector.ResponseFacade
2012-10-4 19:50:37 org.apache.catalina.core.StandardWrapperValve invoke 严重: Servlet.service() for se ...
随机推荐
- Doris开发手记2:用SIMD指令优化存储层的热点代码
最近一直在进行Doris的向量化计算引擎的开发工作,在进行CPU热点排查时,发现了存储层上出现的CPU热点问题.于是尝试通过SIMD的指令优化了这部分的CPU热点代码,取得了较好的性能优化效果.借用本 ...
- spring data jpa执行update和delete语句时报错处理
之前项目中使用spring data jpa时,遇到删除记录的需求时,主要利用spring data中自带的delete()方法处理,最近在dao层使用delete sql语句时报错,代码如下: @Q ...
- MySQL中的联表查询与子查询
0.准备数据 1.内连接:INNER JOIN 2.左连接:LEFT JOIN 3.右连接:RIGHT JOIN 4.USING子句 扩展知识点: 0.表别名的使用: 1.group by的用法 2. ...
- XCTF command_execution
讲道理这题算是我的思路盲区,先试着ping下本地的地址,127.0.0.1 看了大佬的wp时,我突然意识到,这是放在服务器上执行的,而且服务器一般都是linux系统的,所以linux命令是必需的, 思 ...
- ios多线程开发基础
多线程编程:下载数据时,开辟子线程,减少阻塞时间,和主线程并发运行,提升用户体验 1.Thread 1>新建Thread对象,带一selector方法,调用start方法,开启子线程 2> ...
- 不安装任何软件或脚本使用powershell快速计算文件的MD5/SHA1/SHA256等校验值
有的时候在检查升级过程中需要对xml文件进行签名,而xml文件中一般都需要包含安装包的SHA256值,这里分享一个使用PowerShell快速计算SHA256等其他值的方法. 一.在需要计算文件SHA ...
- netcore3.1 + vue (前后端分离)生成PDF(多pdf合并)返回前端打印
1.使用Adobe Acrobat XI Pro编辑pdf模板 2.公共类代码 3.service层调用 4.Controller层 5.前端(Vue) 因为print.js不支持宋体,所以打算用后台 ...
- ARTS第十一周
受辞职考研和新冠肺炎疫情影响,一直没更.遗憾,数学和专业课再高点就有戏了.继续. 1.Algorithm:每周至少做一个 leetcode 的算法题2.Review:阅读并点评至少一篇英文技术文章3. ...
- H3C交换机常用命令
选择多个端口: interface range ethernet 1/0/1 to ethernet 1/0/12 vlan-interface1 常用命令 密码修改: 查看是否有相应的用户名:di ...
- HDFS学习总结之API交互
第一种.shell交互 官方文档:http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.6.0-cdh5.7.0/hadoop-project-dist/ha ...