Servlet.service() for servlet jsp threw exception java.lang.Il在jsp中使用jspsmartupload组件下载文件时将抛出异常的解决方案
2012-12-26 09:55
1361 查看
严重: Servlet.service() for servlet jsp threw exception 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 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:188) at org.apache.jasper.runtime.JspFactoryImpl.internalReleasePageContext(JspFactoryImpl.java:118) at org.apache.jasper.runtime.JspFactoryImpl.releasePageContext(JspFactoryImpl.java:77) at org.apache.jsp.downAction_jsp._jspService(downAction_jsp.java:82) 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:377) 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.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:857) 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 container在处理完成请求后会调用releasePageContet方法释放所用的PageContext object,并且同时调用getWriter方法,由于getWriter方法与在jsp页面中使用流相关的getOutputStream方法冲突,所以会造成这种异常,
解决办法是:只需要在jsp页面的最后加上两条语句:
out.clear();
out=pageContext.pushBody();即可(其中out,pageContext均为jsp内置对象!)
相关文章推荐
- 使用jspsmartupload上传文件抛出的java.lang.IllegalStateException异常
- 严重: Servlet.service() for servlet jsp threw exception java.lang.IllegalStateException: getOutputStream() has already been called
- 严重: Servlet.service() for servlet jsp threw exception java.lang.NullPointerException
- 严重: Servlet.service() for servlet jsp threw exception java.lang.NoSuchMethodError: com.opensymphony.
- Servlet.service() for servlet jsp threw exception java.lang.NullPointerException
- 严重: Servlet.service() for servlet jsp threw exception java.lang.IllegalStateException: getOutputStream() has already been called
- Servlet.service() for servlet jsp threw exception java.lang.NullPointerException
- JSP 文件 下载 代码 (不使用 jsp smart upload 组件) 解决中文名 问题
- 严重: Servlet.service() for servlet default threw exception java.lang.OutOfMemoryError: Java heap spac
- ERROR] 19:04:48 [default] - Servlet.service() for servlet default threw exception java.lang.ClassNotFoundException: org.apache.commons.codec.binary.Hex
- 严重: Servlet.service() for servlet dispatcherServlet threw exception java.lang.IllegalStateException:
- 项目开发技巧(四):使用JspSmartupload实现文件上传下载(一):JspSmart之upload组件源码及使用
- 使用jspSmartUpload组件进行文件上传、下载
- 当使用smartupload上传组件出现java.lang.NullPointerException: charsetName
- 使用jspSmartUpload组件进行文件上传、下载
- Struts 2 严重: Servlet.service() for servlet default threw exception java.lang.IllegalStateException
- 使用jspsmartupload组件在servlet里面上传文件
- 使用smartupload组件实现jsp+jdbc上传下载文件
- Java使用SmartUploadServlet进行文件的上传与下载
- 使用jspSmartUpload组件进行文件上传、下载