Java.lang.IllegalStateException: Servlet response already use stream, Writer not possible

1 resposta
M

Alow gente!!

bom eu ainda nao consegui nenhuma resposta de minhas dúvidas, em fim vou tentar mais uma vez..

ai vai : eu tenho a seguinte página para exibir uma imagem:
<%@page import="br.com.vendomais.jsf.ProdutoEntry"%>
<%@ page import="java.io.File,
                 java.io.InputStream,
                 java.io.FileInputStream,
                 java.io.OutputStream"%><%@ page session="true" %><%
    ProdutoEntry produtoEntry = (ProdutoEntry)session.getAttribute("produtoEntry");
    String contentType = produtoEntry.getFImagem1().getContentType();
    String fileName = produtoEntry.getFImagem1().getName();

    String allowCache = request.getParameter("allowCache");
    String openDirectly = request.getParameter("openDirectly");

    if(allowCache == null || allowCache.equalsIgnoreCase("false"))
    {
        response.setHeader("pragma", "no-cache");
        response.setHeader("Cache-control", "no-cache, no-store, must-revalidate");
        response.setHeader("Expires", "01 Apr 2010 01:10:10 GMT");
    }

    if(contentType!=null)
    {
        response.setContentType(contentType);
    }

    if(fileName != null)
    {
        fileName = fileName.substring(fileName.lastIndexOf('\\')+1);
        fileName = fileName.substring(fileName.lastIndexOf('/')+1);

        StringBuffer contentDisposition = new StringBuffer();

        if(openDirectly==null || openDirectly.equalsIgnoreCase("false"))
        {
            contentDisposition.append("attachment;");
        }

        contentDisposition.append("filename=\"");
        contentDisposition.append(fileName);
        contentDisposition.append("\"");

        response.setHeader ("Content-Disposition", contentDisposition.toString());
    }

    byte[] bytes = produtoEntry.getFImagem1().getBytes();
    if (bytes != null)
    {
        response.getOutputStream().write(bytes);
    }
%>

essa pagina está me explodindo o seguinte erro:

java.lang.IllegalStateException: Servlet response already use stream, Writer not possible
	at org.ajax4jsf.framework.ajax.xmlfilter.FilterServletResponseWrapper.getWriter(FilterServletResponseWrapper.java:199)
	at javax.servlet.ServletResponseWrapper.getWriter(ServletResponseWrapper.java:111)
	at javax.servlet.ServletResponseWrapper.getWriter(ServletResponseWrapper.java:111)
	at org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:124)
	at org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:117)
	at org.apache.jasper.runtime.PageContextImpl.release(PageContextImpl.java:191)
	at org.apache.jasper.runtime.JspFactoryImpl.internalReleasePageContext(JspFactoryImpl.java:115)
	at org.apache.jasper.runtime.JspFactoryImpl.releasePageContext(JspFactoryImpl.java:75)
	at org.apache.jsp.pages.produto.cadastro.exibe_005fimagem_jsp._jspService(org.apache.jsp.pages.produto.cadastro.exibe_005fimagem_jsp:104)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
	at com.ibm.faces.context.MultipartExternalContextImpl.dispatch(MultipartExternalContextImpl.java:320)
	at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:130)
	at org.ajax4jsf.framework.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:101)
	at oracle.adfinternal.view.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:157)
	at oracle.adfinternal.view.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:157)
	at org.ajax4jsf.framework.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:101)
	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:87)
	at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:117)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:97)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._invokeDoFilter(AdfFacesFilterImpl.java:367)
	at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._doFilterImpl(AdfFacesFilterImpl.java:336)
	at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl.doFilter(AdfFacesFilterImpl.java:196)
	at oracle.adf.view.faces.webapp.AdfFacesFilter.doFilter(AdfFacesFilter.java:87)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:65)
	at org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:226)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:144)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
	at java.lang.Thread.run(Thread.java:595)
23/10/2006 16:52:48 org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet Faces Servlet threw exception

dessa vez alguem já passou por isso???

um [].

1 Resposta

T

Dica:
Isto é 100% porco, mas já vi funcionar grudando todos os tags, de forma que não seja emitido nenhum comando “out.print” pelo compilador JSP. Algo como:

&lt;%@page import="br.com.vendomais.jsf.ProdutoEntry"%&gt;&lt;%@ page import="java.io.File,
                  java.io.InputStream,
                  java.io.FileInputStream,
                  java.io.OutputStream"%&gt;&lt;%@ page session="true" %&gt;&lt;%
...
%&gt;

(Cuidado: veja se a última linha também não tem um “LF” ou “CR LF” no fim dela, ou algum espaço em branco.)

Criado 23 de outubro de 2006
Ultima resposta 23 de out. de 2006
Respostas 1
Participantes 2