过几分钟 就抛这个异常  为什么啊?
java.lang.IllegalStateException
at org.apache.catalina.connector.ResponseFacade.sendError(ResponseFacade.java:407)
at org.apache.struts2.dispatcher.Dispatcher.sendError(Dispatcher.java:725)
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:485)
at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395)
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.Http11AprProcessor.process(Http11AprProcessor.java:877)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:594)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1675)
at java.lang.Thread.run(Thread.java:722)

解决方案 »

  1.   

    抛出异常:
    ERROR [Engine] StandardWrapperValve[jsp]: Servlet.service() for servlet jsp threw exception
    java.lang.IllegalStateException: getOutputStream() has already been called for this response
    综合分析原因如下:
    这是web容器生成的servlet代码中有out.write(””),这个和JSP中调用的response.getOutputStream()产生冲突.
    即Servlet规范说明,不能既调用 response.getOutputStream(),又调用response.getWriter(),无论先调用哪一个,在调用第二个时候应会抛出 IllegalStateException,因为在jsp中,out变量是通过response.getWriter得到的,在程序中既用了response.getOutputStream,又用了out变量,故出现以上错误。
    解决方案:
    1.在程序中添加:
    out.clear();
    out = pageContext.pushBody();
    就可以了;我是在页面输出图片之后写的这两句,代码如下://输出图象到页面
    ImageIO.write(image, "JPEG", response.getOutputStream());out.clear();
    out = pageContext.pushBody();2,不要在%][%之间写内容包括空格和换行符
    3,在页面写入图片的时候,需要flush()
     OutputStream output=response.getOutputStream();
     output.flush();
    4,在页面确定写入<meta http-equiv="Content-Type" content="text/html;charset=GB18030">----------------------------------------------------------------------------------------------在response.sendRedirect()时也可能会出现下列错误:java.lang.IllegalStateException:
     org.apache.catalina.connector.ResponseFacade.sendRedirect(ResponseFacade.java:423)解决办法如下:在response.sendRedirect("");语句后面加上return语句就OK了。例如:response.sendRedirect("");      return ;
    试试看
      

  2.   

      这个SO容易,关掉MyExlpse重新加载Tomcat
      

  3.   

    在response.sendRedirect("");语句后面加上return语句就OK了。例如:response.sendRedirect("");
    用的struts2啊  在哪里return啊