java.lang.IllegalStateException: getOutputStream() has already been called for this response

原创 2016年08月29日 09:55:41

下载文件产生异常:

java.lang.IllegalStateException: getOutputStream() has already been called for this response


response.getWriter()和response.getOutputStream()相冲突造成的

// 通过response的输出流把工作薄的流发送浏览器形成文件
		OutputStream outStream=null;
		try{
			outStream = response.getOutputStream();
			workBook.write(outStream);
			outStream.flush();	
		}catch(Exception e){
			e.printStackTrace();
		}finally{
			if(outStream!=null){
				outStream.close();
			}
			if(workBook!=null){
				workBook.close();
			}
		}

在Controller层返回null,切记一定要返回null!有些人总觉得是流未关闭,关闭流之后依旧抛出该异常



	public ModelAndView excelParse(@RequestParam(value="excelFile",required=false) MultipartFile file,
							HttpServletRequest request,HttpServletResponse response) throws Exception{
		ModelAndView view=new ModelAndView("ownerinfo/owner_import");	
<span style="white-space:pre">		</span>ownerImportService.ownerImport(is,response,request);
	<span style="white-space:pre">	</span>return null;



Spark源码分析之五:Task调度(一)

在前四篇博文中,我们分析了Job提交运行总流程的第一阶段Stage划分与提交,它又被细化为三个分阶段:         1、Job的调度模型与运行反馈;         2、Stage划分;     ...
  • lipeng_bigdata
  • lipeng_bigdata
  • 2016年02月19日 14:00
  • 3629

spring4mvc 实现文件下载功能reponse.getOutputStream()重复调用问题解决

本来是准备做一个类似网络硬盘的功能,判断目标是文件的时候,点击就启动下载。 谁想遇到了不少...
  • xchgx
  • xchgx
  • 2014年08月11日 08:26
  • 1297

opencv 初学者常见问题

① imshow 显示图像为灰色图片或者视频显示不出来 【解决方案】 一定要加 waitKey() ② 环境变量配置之后需要重启电脑,VS中项目:包含目录、库目录(lib库) 配置; 库目录的配...
  • Jane_yuhui
  • Jane_yuhui
  • 2016年04月04日 16:12
  • 3486

ARouter源码分析初始化以及跳转

ARouter源码分析初始化以及跳转
  • kangdi437
  • kangdi437
  • 2017年05月12日 17:35
  • 2068

Spark源码学习笔记6-RpcEnv(Rpc实现层)

继5-RpcEnv(Rpc抽象层) 之后,我们再来了解下Rpc框架下的实现层。
  • zhyi0802
  • zhyi0802
  • 2017年05月07日 23:37
  • 1073

quartz集群调度机制调研及源码分析

出处:http://blog.csdn.net/gklifg/article/details/27090179有人总结了三种quratz集群方案:http://www.iteye.com/topic/...
  • xiejx618
  • xiejx618
  • 2016年05月23日 11:15
  • 1039

JDBC学习笔记

JDBC技术 JDBC概述 JDBC和数据库驱动的关系 JDBC开发基本步骤 JDBC API详解 javasqlDriverManager javasqlConnection接口 javasqlSt...
  • SIMBA1949
  • SIMBA1949
  • 2018年01月14日 20:25
  • 29

Android C++层的内存收回机制

1关于C++ Layer的内存回收机制 Android C++层的内存收回主要是通过三个类来实现,分别是RefBase,sp,wp; SP和WP是两个智能指针模板类,sp是strong p...
  • yeming1108
  • yeming1108
  • 2016年03月07日 15:15
  • 188

react native 一次内存泄漏分析

在项目中添加react native 支持后,leakcanary 检测到有内存泄漏的,如下图 可以分析出,内存泄漏是由ReactRootview 持有activity引用,在activ...
  • shix_foot
  • shix_foot
  • 2017年02月03日 12:17
  • 1999

简单实现一个JSONP协议的小例子

jsonp原理个人总结(比较片面)为:在A服务器上的页面向B服务器上发送一个url请求,请求里包含一个参数callback(约定),参数值是A服务器上页面里定义的一个函数(函数的参数个数类型等应该也需...
  • u013456765
  • u013456765
  • 2016年11月09日 10:53
  • 668
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java.lang.IllegalStateException: getOutputStream() has already been called for this response
举报原因:
原因补充:

(最多只允许输入30个字)