O velho problema getOutputStream() has already been called for this response (HELP)

0 respostas
Deluxe

Galera
ja vi esse problema antes
mas não lembro como resolvi..

vamos la

File arquivo = new File (retornoPath.getPathDownloadCompleto());  
		  	 
	    	response.setContentType("application/pdf");
	        response.setHeader("Content-disposition", "attachment;filename="+ URLEncoder.encode(retornoPath.getNomeArquivo(), "utf-8"));  
	           
	        InputStream in = new FileInputStream(arquivo);  
	        ServletOutputStream out = response.getOutputStream();  
	   
	        byte[] buffer = new byte[(int)arquivo.length()];  
	        int nLidos;  
	           
	        while((nLidos = in.read(buffer)) >= 0) {  
	            out.write(buffer, 0, nLidos);  
	        }  
	        
	        out.flush();  
	        out.close();
			
		
	return executePesqDiariosEletronicos(mapping, form, request, response);

Eu abro pego um caminho na minha maquina
um arquivo pdf
e jogo ele para download na tela do usuario..

e o problema ocorre

Caused by: 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 javax.servlet.ServletResponseWrapper.getWriter(ServletResponseWrapper.java:112)
	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.JspWriterImpl.flush(JspWriterImpl.java:173)
	at org.apache.struts.tiles.taglib.InsertTag$InsertHandler.doEndTag(InsertTag.java:893)
	at org.apache.struts.tiles.taglib.InsertTag.doEndTag(InsertTag.java:465)
	at org.apache.jsp.WEB_002dINF.jsp.layout.baseLayout_jsp._jspx_meth_tiles_005finsert_005f0(baseLayout_jsp.java:338)
	at org.apache.jsp.WEB_002dINF.jsp.layout.baseLayout_jsp._jspService(baseLayout_jsp.java:116)
	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)
	... 36 more

Descobrir que o problema ta no retorno..
se eu nao retornar nada, não da problema
mas se eu colocar o retorno para outra action
ele da esse problema, creio eu devido ao response..
alguem sabe resolver ?

abraços

Criado 10 de março de 2010
Respostas 0
Participantes 1