java.lang.IllegalStateException: getOutputStream() has already been called for this response
at org.apache.catalina.connector.Response.getWriter(Response.java:611)
at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:198)
at javax.servlet.ServletResponseWrapper.getWriter(ServletResponseWrapper.java:112)
at org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:125)
at org.apache.jasper.runtime.JspWriterImpl.write(JspWriterImpl.java:276)
at java.io.PrintWriter.write(PrintWriter.java:354)
at org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:119)
at org.apache.jasper.runtime.JspWriterImpl.write(JspWriterImpl.java:326)
at org.apache.jasper.runtime.JspWriterImpl.write(JspWriterImpl.java:342)
at com.opensymphony.module.sitemesh.parser.TokenizedHTMLPage.writeBody(TokenizedHTMLPage.java:35)
at com.opensymphony.module.sitemesh.taglib.decorator.BodyTag.doEndTag(BodyTag.java:26)
at org.apache.jsp.themes.faces.nh_005fface.decorators.DecoratorMain_jsp._jspx_meth_decorator_005fbody_005f0(DecoratorMain_jsp.java:535)
at org.apache.jsp.themes.faces.nh_005fface.decorators.DecoratorMain_jsp._jspService(DecoratorMain_jsp.java:315)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:551)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:488)
at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:968)
at org.apache.jsp.decorators.DecoratorMain_jsp._jspService(DecoratorMain_jsp.java:53)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:551)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:488)
at com.opensymphony.module.sitemesh.filter.PageFilter.writeDecorator(PageFilter.java:173)
at com.opensymphony.module.sitemesh.filter.PageFilter.applyDecorator(PageFilter.java:158)
at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:62)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.smartdot.galaxy.portal.filter.auth.URLProtectionFilter.doFilter(Unknown Source)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.smartdot.galaxy.portal.filter.auth.AuthFilter.doFilter(Unknown Source)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.smartdot.galaxy.portal.filter.ShareLdapConnectionFilter.doFilter(Unknown Source)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.smartdot.util.server.SetCharacterEncodingFilter.doFilter(Unknown Source)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:291)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:595)
2011-9-26 18:18:23 org.apache.catalina.core.ApplicationDispatcher invoke
严重: Servlet.service() for servlet jsp threw exception

解决方案 »

  1.   

    我的action中的方法
    if (list != null && list.size() > 0) {
    // 创建一个webbook,对应一个Excel文件
    HSSFWorkbook wb = new HSSFWorkbook();
    // 在webbook中添加一个sheet,对应Excel文件中的sheet
    HSSFSheet sheet = wb.createSheet(intStartDate + "-"
    + intEndDate + "自营|资管重仓相似度");
    // 在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short
    HSSFRow row = sheet.createRow((int) 0);
    // 创建单元格,并设置值表头 设置表头居中
    HSSFCellStyle style = wb.createCellStyle();
    style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式 HSSFCell cell = row.createCell((short) 0);
    cell.setCellValue("日期");
    cell.setCellStyle(style);
    cell = row.createCell((short) 1);
    cell.setCellValue("自");
    cell.setCellStyle(style);
    cell = row.createCell((short) 2);
    cell.setCellValue("资");
    cell.setCellStyle(style);
    cell = row.createCell((short) 3);
    cell.setCellValue("度");
    cell.setCellStyle(style); // 写入实体数据
    for (int i = 0; i < list.size(); i++) {
    row = sheet.createRow((int) i + 1);
    HeaveweightStock s = list.get(i);
    // 创建单元格,并设置值
    // row.createCell((short) 0).setCellValue(
    // new SimpleDateFormat("yyyy-MM-dd").format(s
    // .getSyncDate()));
    if (s.getSyncDate() != "" || s.getSyncDate() != null) {
    row.createCell((short) 0).setCellValue(
    s.getSyncDate().substring(0, 4) + "-"
    + s.getSyncDate().substring(4, 6)
    + "-"
    + s.getSyncDate().substring(6, 8));
    }
    row.createCell((short) 1).setCellValue(
    s.getZyStockCode());
    row.createCell((short) 2).setCellValue(
    s.getZgStockCode());
    row.createCell((short) 3).setCellValue(
    s.getSimilarity() + "%");
    // 合并单元格 10个一组
    if ((i - 1) % 10 == 0) {
    sheet.addMergedRegion(new Region(i, (short) 0,
    i + 9, (short) 0));
    sheet.addMergedRegion(new Region(i, (short) 3,
    i + 9, (short) 3));
    }
    }
    // 将文件存到指定位置
    try {
    String filename = this.startDate + "至" + this.endDate;
    response.setContentType("application/ms-excel");
    response.setHeader("Content-Disposition",
    "attachment;filename="
    + new String((filename + ".xls")
    .getBytes(), "iso-8859-1"));
    OutputStream outputStream = null;
    response.flushBuffer();
    outputStream = response.getOutputStream();
    wb.write(outputStream);
    outputStream.flush();
    outputStream.close();
    } catch (Exception e) {
    e.printStackTrace();
    }
      

  2.   

    在outputstream.close();后加上下面两句: 
    out.clear();
    out = pageContext.pushBody();
      

  3.   

    out是什么?怎么出来的?
    我的方法不在jsp页面上写
    是在action中写的.
      

  4.   

    我的写法跟你一样,也是在java代码中做的,出现同样的问题,老兄,你是怎么解决的?请指教!