java.lang.IllegalStateException: getOutputStream() has already been called for this response at org.apache.catalina.connector.Response.getWriter(Response.java:639) at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:214) at javax.servlet.ServletResponseWrapper.getWriter(ServletResponseWrapper.java:105) at javax.servlet.ServletResponseWrapper.getWriter(ServletResponseWrapper.java:105) at javax.servlet.ServletResponseWrapper.getWriter(ServletResponseWrapper.java:105) at org.springframework.security.web.context.SaveContextOnUpdateOrErrorResponseWrapper.getWriter(SaveContextOnUpdateOrErrorResponseWrapper.java:109) at org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:125) at org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:118) at org.apache.jasper.runtime.PageContextImpl.release(PageContextImpl.java:182) at org.apache.jasper.runtime.JspFactoryImpl.internalReleasePageContext(JspFactoryImpl.java:126) at org.apache.jasper.runtime.JspFactoryImpl.releasePageContext(JspFactoryImpl.java:80) at org.apache.jsp.view.baseinfo.idcimport_002dloadsuccess_jsp._jspService(idcimport_002dloadsuccess_jsp.java:282) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)以上是错误代码 我如果在action中 return null 则不会报错
java.lang.IllegalStateException: getOutputStream() has already been called for this response
at org.apache.catalina.connector.Response.getWriter(Response.java:639)
at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:214)
at javax.servlet.ServletResponseWrapper.getWriter(ServletResponseWrapper.java:105)
at javax.servlet.ServletResponseWrapper.getWriter(ServletResponseWrapper.java:105)
at javax.servlet.ServletResponseWrapper.getWriter(ServletResponseWrapper.java:105)
at org.springframework.security.web.context.SaveContextOnUpdateOrErrorResponseWrapper.getWriter(SaveContextOnUpdateOrErrorResponseWrapper.java:109)
at org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:125)
at org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:118)
at org.apache.jasper.runtime.PageContextImpl.release(PageContextImpl.java:182)
at org.apache.jasper.runtime.JspFactoryImpl.internalReleasePageContext(JspFactoryImpl.java:126)
at org.apache.jasper.runtime.JspFactoryImpl.releasePageContext(JspFactoryImpl.java:80)
at org.apache.jsp.view.baseinfo.idcimport_002dloadsuccess_jsp._jspService(idcimport_002dloadsuccess_jsp.java:282)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)以上是错误代码 我如果在action中 return null 则不会报错
建议用完了的地方close,保证串行使用。
String tmpPath = File.separator + "import" + File.separator;
File targetFolder = new File(path, tmpPath);
if (!targetFolder.exists()) {
targetFolder.mkdirs();
}
String fileName = dataImport.getAttchFileName();
File target = new File(targetFolder, fileName);
FileUtil.copyFile(dataImport.getAttch(), target);
List<String[]> strExcel = ReadExcel.readExcel(target);
//以上部分是做excel读取
Workbook book = new SXSSFWorkbook();
ServletOutputStream os = response.getOutputStream();
book.write(os);
将方法改为void,不要返回到jsp页面。