当前位置:编程学习 > JAVA >>

java.lang.IllegalStateException

前台点击导出excel按钮跳到这个页面之后执行we.ExcelZone("111.xls",response.getOutputStream());这一句的时候报错:
严重: Servlet.service() for servlet jsp threw exception
java.lang.IllegalStateException
at org.apache.jasper.runtime.ServletResponseWrapperInclude.getOutputStream(ServletResponseWrapperInclude.java:63)
at org.apache.jsp.download_jsp._jspService(download_jsp.java:63)
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.jasper.runtime.PageContextImpl.doInclude(PageContextImpl.java:653)
at org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:647)
at org.apache.tiles.jsp.context.JspTilesRequestContext.include(JspTilesRequestContext.java:80)
at org.apache.tiles.jsp.context.JspTilesRequestContext.dispatch(JspTilesRequestContext.java:73)
at org.apache.tiles.context.TilesRequestContextWrapper.dispatch(TilesRequestContextWrapper.java:72)
at org.apache.struts2.tiles.StrutsTilesRequestContext.dispatch(StrutsTilesRequestContext.java:88)
at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:283)
at org.apache.tiles.jsp.taglib.InsertAttributeTag.render(InsertAttributeTag.java:140)
at org.apache.tiles.jsp.taglib.InsertAttributeTag.render(InsertAttributeTag.java:117)
at org.apache.tiles.jsp.taglib.RenderTagSupport.execute(RenderTagSupport.java:154)
at org.apache.tiles.jsp.taglib.RoleSecurityTagSupport.doEndTag(RoleSecurityTagSupport.java:75)
at org.apache.tiles.jsp.taglib.ContainerTagSupport.doEndTag(ContainerTagSupport.java:80)
at org.apache.jsp.frame_jsp._jspx_meth_tiles_005finsertAttribute_005f1(frame_jsp.java:153)
at org.apache.jsp.frame_jsp._jspService(frame_jsp.java:100)
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.processRequest(ApplicationDispatcher.java:436)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
我该怎么解决啊,求高手。 --------------------编程问答-------------------- jsp完整代码如下:
<%@ page contentType="application/vnd.ms-excel" language="java" import="java.util.*,com.ps.action.admin.AreaAnalysis"import="com.ps.entity.heatAcum"import="com.opensymphony.xwork2.ActionContext" pageEncoding="GBK"%><%
response.reset();
response.setHeader("Content-Disposition","attachment;filename=test123.xls");
response.setContentType("application/vnd.ms-excel"); 
System.out.println("bbbbb");
AreaAnalysis we=new AreaAnalysis();
we.ExcelZone("111.xls",response.getOutputStream());
%> --------------------编程问答-------------------- response.reset();
这句问题。 --------------------编程问答-------------------- 这句去了还是报错,问题在这一句:we.ExcelZone("111.xls",response.getOutputStream()); --------------------编程问答-------------------- 坐等答案。求高手。 --------------------编程问答-------------------- 嗯。
jsp编译的结果会编译出out.write(),与response.getOutputStream()冲突了。

we.ExcelZone("111.xls",response.getOutputStream());
在这句后面加下面两句:

out.clear(); 
out = pageContext.pushBody();  --------------------编程问答-------------------- we.ExcelZone("111.xls",response.getOutputStream());

请问111.xls是在哪?C盘?D盘?E盘,你确定这里不用给个绝对路径,例如 c:/111.txt   ???? --------------------编程问答-------------------- 嗯,jsp编译的时候,会编译出out.write(),它与response.getOutputStream()冲突了。

在最后,即we.ExcelZone("111.xls",response.getOutputStream());后面加:
out.clear(); 
out = pageContext.pushBody();  --------------------编程问答-------------------- 还是不行啊,我对应的那个 ExcelZone方法是这样的:
public String ExcelZone(String str ,OutputStream out)throws Exception{
...
}
是不是这个out的问题,该怎么处理? --------------------编程问答-------------------- 一天了,就没有人知道吗??? --------------------编程问答-------------------- 一天了啊,高手都去哪了??? --------------------编程问答-------------------- 有没有搞定呢?
补充:Java ,  Web 开发
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,