`

getOutputStream() has already been called for this response

    博客分类:
  • bug
 
阅读更多
[size=large]
从别人手中接手的项目,加载项目进入开始页面和其他的页面的时候,总是报这样的错误,虽然不怎么影响程序的运行,但是看着心里不舒服。在网上查看了一下资料,终于解决了。
因为有的jsp页面利用流来读取图片了,只需要在页面中加入以下代码就可以了,至于为什么,最后有详细的介绍。
<%@page contentType="image/jpeg; charset=utf8" %>  
<%@page import="java.io.OutputStream"%>  //记住导入包
<%   
    String id = request.getParameter("id");
    OutputStream os =response.getOutputStream();
    Boolean ret = com.udrm.bms.struts.beans.CommodityBean.getCommodityImgById(id ,os);//Get Validate Information
    os.flush();//解决了 getOutputStream() has already been called for this response的问题 
    os.close();
    os = null;

    response.flushBuffer();//也有的是用的response.reset();但是我在这里用它就报错,
    out.clear();
    out = pageContext.pushBody();
%>
 
2012-3-14 14:16:18 org.apache.catalina.core.StandardWrapperValve invoke
严重: 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:610)
	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.commodityImg_jsp._jspService(commodityImg_jsp.java:67)
	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:374)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
	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 com.udrm.bms.struts.beans.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:80)
	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:128)
	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:286)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
	at java.lang.Thread.run(Unknown Source)



这个地址上介绍的挺详细的,可以参考一下。http://hi.baidu.com/zjriso/blog/item/ce1aced1fabdecdb562c8438.html
[/size]
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics