当前位置: 代码迷 >> J2EE >> org.apache.catalina.core.StandardWrapperValve invoke解决方法
  详细解决方案

org.apache.catalina.core.StandardWrapperValve invoke解决方法

热度:460   发布时间:2016-04-22 02:09:58.0
org.apache.catalina.core.StandardWrapperValve invoke
Java code
2011-1-22 15:18:23 org.apache.catalina.core.StandardWrapperValve invoke严重: Servlet.service() for servlet action threw exceptionjava.lang.IllegalStateException: Cannot forward after response has been committed    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:312)    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)    at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1085)    at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:398)    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:241)    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)    at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)    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 loginfilter.LoginFilter.doFilter(LoginFilter.java:55)    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:298)    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)    at java.lang.Thread.run(Thread.java:619)

上面是详细的错误信息。

这个是我的jsp页面。
HTML code
    <form action="/NMSoftware/admission.do?method=queryExcel"            method="post">            <input type="hidden" value="20" name="pagesize" /><input type="hidden" value="1" name="pagenow" /><input type="submit" value="导出Excel" />                    </form>


这个是我的action页面
Java code
public ActionForward queryExcel(ActionMapping mapping, ActionForm form,            HttpServletRequest request, HttpServletResponse response){        try {        HttpSession session = request.getSession();        String spagenow = request.getParameter("pagenow");        String spagesize = request.getParameter("pagesize");        int pagenow = Integer.parseInt(spagenow);        int pagesize = Integer.parseInt(spagesize);        SqlBean sq = new SqlBean();        List list = null;        String tt = "";        if (session.getAttribute("stockgoods") != null) {            List sessionList = (List) session.getAttribute("stockgoods");            for (int i = 0; i < sessionList.size(); i++) {                AddQueryForm af = (AddQueryForm) sessionList.get(i);                tt += af.getFieldnamel() + " " + af.getOperator() + " '"                        + af.getFieldvalues() + "' " + af.getManner() + " ";            }            list = sq.accnsQuery(pagesize, pagenow, tt);        } else {            list = sq.accnsQuery(pagesize, pagenow, null);        }        String str = "学生登记信息表";        String sstr = new String(str.getBytes("gb2312"), "ISO-8859-1");                    OutputStream os = response.getOutputStream();// 取得输出流            response.reset();// 清空输出流            response.setHeader("Content-disposition", "attachment; filename="                    + sstr + ".xls");// 设定输出文件头            response.setContentType("application/msexcel");// 定义输出类型            response.setCharacterEncoding("gb2312");            WritableWorkbook wbook = Workbook.createWorkbook(os); // 建立excel文件            WritableSheet wsheet = wbook.createSheet("sheet1", 0); // sheet名称            // 设置excel标题            WritableFont wfont = new WritableFont(WritableFont.ARIAL, 16,                    WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE);            WritableCellFormat wcfFC = new WritableCellFormat(wfont);            wcfFC.setAlignment(Alignment.CENTRE);            // 开始生成主体内容            wsheet.addCell(new Label(0, 0, "编号"));            wsheet.addCell(new Label(1, 0, "姓名"));            wsheet.addCell(new Label(2, 0, "拼音码"));            wsheet.addCell(new Label(3, 0, "性别"));            wsheet.addCell(new Label(4, 0, "申请日期"));            wsheet.addCell(new Label(5, 0, "入托方式"));            wsheet.addCell(new Label(6, 0, "班级"));            wsheet.addCell(new Label(7, 0, "接送方式"));            wsheet.addCell(new Label(8, 0, "特长班"));            int i = 1, j = 1;            for (int n = 0; n < list.size(); n++) {                Adms_Car_Class_Nur_SpeForm ssf = (Adms_Car_Class_Nur_SpeForm) list                        .get(n);                wsheet.addCell(new Label(0, i, j + ""));                wsheet.addCell(new Label(1, i, ssf.getAdname()));                wsheet.addCell(new Label(2, i, ssf.getAdcode()));                wsheet.addCell(new Label(3, i, ssf.getAdsex()));                wsheet.addCell(new Label(4, i, ssf.getAdtime()));                wsheet.addCell(new Label(5, i, ssf.getNursery()));                wsheet.addCell(new Label(6, i, ssf.getClassname()));                wsheet.addCell(new Label(7, i, ssf.getCarname()));                wsheet.addCell(new Label(8, i, ssf.getSpecialtyname()));                i++;                j++;            }            // 主体内容生成结束            wbook.write(); // 写入文件            wbook.close();            os.flush();            os.close(); // 关闭流        } catch (Exception ex) {            ex.printStackTrace();        }        return mapping.getInputForward();    }
  相关解决方案