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