[Resolvido!] Problemas em imprimir relatorio com o sistema instalado em servidor debian lenny

Olá Pessoal, bom dia!

Estou com uma aplicação Java Web instalada em um servidor debian lenny, com o postgreSQL 8.3, apache-tomcat-6.0.26, jasperreports-3.0.0 e jdk-6u21-linux-i586. Estou utilizando Facelets e Faces Servlet. A aplicação está em arquivo.WAR funcionando perfeitamente…

O problema é que, quando vou acessar a opção de relatórios, e clicar no link para download do mesmo, ele me retorna esse erro:

ava.lang.IllegalStateException: Servlet response already use stream, Writer not possible at org.ajax4jsf.webapp.FilterServletResponseWrapper.getWriter(FilterServletResponseWrapper.java:226) at com.sun.facelets.FaceletViewHandler.createResponseWriter(FaceletViewHandler.java:416) at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:573) at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108) at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:237) at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106) at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251) at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:307) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141) at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at br.gov.rr.setrabes.util.HibernateSessionFilter.doFilter(HibernateSessionFilter.java:21) 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: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:852) 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)

O interessante é que no meu computador, no eclipse, funciona perfeitamente…

Alguem tem idéia do que pode ser?

Valeu.

Estou com este mesmo problema :thumbdown:

Servlet response already use stream, Writer not possible

No entanto os relatórios da aplicação estavam funcionando. O erro começou após atualização das libs de RichFaces 3.3.3 e Jasper 3.7 e recompilação dos relatórios usando as novas libs.
Estou avaliando alguma incompatibilidade entre as bibliotecas.
Em minhas buscas conferi como em outros posts.

[quote=Java Lover]Estou com este mesmo problema :thumbdown:

Servlet response already use stream, Writer not possible

No entanto os relatórios da aplicação estavam funcionando. O erro começou após atualização das libs de RichFaces 3.3.3 e Jasper 3.7 e recompilação dos relatórios usando as novas libs.
Estou avaliando alguma incompatibilidade entre as bibliotecas.
Em minhas buscas conferi como em outros posts.[/quote]

Brow, o interessante é que na aplicação funciona perfeitamente… inclusive uso as mesmas lib’s do projeto…

Encontrei uma dica que pra mim não funcionou, mas vc pode verificar se é seu caso.
Incluir no final do seu metodo que é invocado no seu ManagedBean.FacesContext.getCurrentInstance().responseComplete(); Verifiquei a origem da mensagem no método getWriter: public PrintWriter getWriter() throws IOException { if (useStream) { throw new IllegalStateException(Messages.getMessage(Messages.NO_WRITER_POSSIBLE_ERROR)); } if (printWriter == null) { if (log.isDebugEnabled()) { log.debug(Messages.getMessage(Messages.CREATE_WRITER_INFO)); } printWriter = new PrintWriter(new ServletStringWriter()); useWriter = true; } return printWriter; } O atributo useStream é setado true no método getOutputStream:

public ServletOutputStream getOutputStream() throws IOException { if (useWriter) { if (isUseNullStream()) { return new NullServletOutputStream(); } throw new IllegalStateException(Messages.getMessage(Messages.NO_STREAM_POSSIBLE_ERROR)); } if (servletOutputStream == null) { servletOutputStream = new ByteArrayServletOutputStream(); } if (log.isDebugEnabled()) { log.debug(Messages.getMessage(Messages.CREATE_STREAM_INFO)); } useStream = true; return servletOutputStream; } Considerando que:public class FilterServletResponseWrapper extends HttpServletResponseWrapper {

Pessoal, ninguém conseguiu?
Não esqueçam de postar caso consigam :smiley:

[]'s

Eae pessoal, boa tarde.

Alguma novidade sobre isso??? Alguem conseguiu resolver??
Abraços.

Amigo, eu já tinha instanciado essa chamada dentro do método no bean:

[code] ByteArrayOutputStream output = new ByteArrayOutputStream();
JasperExportManager.exportReportToPdfStream(rel, output);
response.setContentType(“application/pdf”);
response.addHeader(“Content-Disposition”,
“attachment;filename=relatorio” + id + “.pdf”);
response.setContentLength(output.size());

		servletOutputStream.write(output.toByteArray(), 0, output.size());
		servletOutputStream.flush();
		servletOutputStream.close();
		facesContext.responseComplete(); //aqui!!

[/code]

Pensei que pudesse ser um problema de caminho dos arquivos, mas eu conferi e está tudo certinho…
Complicado isso…

Se tiver alguma novidade, aguardo.

Vlw.

[quote=Java Lover]Encontrei uma dica que pra mim não funcionou, mas vc pode verificar se é seu caso.
Incluir no final do seu metodo que é invocado no seu ManagedBean.FacesContext.getCurrentInstance().responseComplete(); Verifiquei a origem da mensagem no método getWriter: public PrintWriter getWriter() throws IOException { if (useStream) { throw new IllegalStateException(Messages.getMessage(Messages.NO_WRITER_POSSIBLE_ERROR)); } if (printWriter == null) { if (log.isDebugEnabled()) { log.debug(Messages.getMessage(Messages.CREATE_WRITER_INFO)); } printWriter = new PrintWriter(new ServletStringWriter()); useWriter = true; } return printWriter; } O atributo useStream é setado true no método getOutputStream:

public ServletOutputStream getOutputStream() throws IOException { if (useWriter) { if (isUseNullStream()) { return new NullServletOutputStream(); } throw new IllegalStateException(Messages.getMessage(Messages.NO_STREAM_POSSIBLE_ERROR)); } if (servletOutputStream == null) { servletOutputStream = new ByteArrayServletOutputStream(); } if (log.isDebugEnabled()) { log.debug(Messages.getMessage(Messages.CREATE_STREAM_INFO)); } useStream = true; return servletOutputStream; } Considerando que:public class FilterServletResponseWrapper extends HttpServletResponseWrapper {[/quote]

Bom dia.
Me diz duas coisas?
Você está com o seu sistema em um servidor linux ou rodando diretamente do seu pc?
Quais versões você estava utilizando das libs do richfaces, jasper, iText antes de dar esse problema??

Pode ser alguma incompatibilidade entre essas versões de libs.

Aguardo resposta.

Abs.

[quote=Java Lover]Encontrei uma dica que pra mim não funcionou, mas vc pode verificar se é seu caso.
Incluir no final do seu metodo que é invocado no seu ManagedBean.FacesContext.getCurrentInstance().responseComplete(); Verifiquei a origem da mensagem no método getWriter: public PrintWriter getWriter() throws IOException { if (useStream) { throw new IllegalStateException(Messages.getMessage(Messages.NO_WRITER_POSSIBLE_ERROR)); } if (printWriter == null) { if (log.isDebugEnabled()) { log.debug(Messages.getMessage(Messages.CREATE_WRITER_INFO)); } printWriter = new PrintWriter(new ServletStringWriter()); useWriter = true; } return printWriter; } O atributo useStream é setado true no método getOutputStream:

public ServletOutputStream getOutputStream() throws IOException { if (useWriter) { if (isUseNullStream()) { return new NullServletOutputStream(); } throw new IllegalStateException(Messages.getMessage(Messages.NO_STREAM_POSSIBLE_ERROR)); } if (servletOutputStream == null) { servletOutputStream = new ByteArrayServletOutputStream(); } if (log.isDebugEnabled()) { log.debug(Messages.getMessage(Messages.CREATE_STREAM_INFO)); } useStream = true; return servletOutputStream; } Considerando que:public class FilterServletResponseWrapper extends HttpServletResponseWrapper {[/quote]

Eae pessoal, ninguém passou por isso quando passou a aplicação para um servidor???

É impressão minha, ou a participação nos tópicos estão diminuindo??

Agradeço ajuda.

Bom dia a todos.

Pessoal, descobri o motivo do erro, porém ainda não consegui soluciona-lo: Estive verificando os logs do tomcat no servidor, e apareceu essa exception durante a chamada do relatório:

[code]23/11/2010 10:28:49 javax.faces.event.MethodExpressionActionListener processAction
GRAVE: Received ‘java.lang.NullPointerException’ when invoking action listener ‘#{orgaogestorHandler.imprimirRelatorio}’ for component ‘btcodOg’
23/11/2010 10:28:49 javax.faces.event.MethodExpressionActionListener processAction
GRAVE: java.lang.NullPointerException
at java.io.File.<init>(File.java:222)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:534)
at br.gov.rr.setrabes.handler.OrgaoGestorHandler.imprimirRelatorio(OrgaoGestorHandler.java:367)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.el.parser.AstValue.invoke(AstValue.java:191)
at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
at com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68)
at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:88)
at javax.faces.event.ActionEvent.processListener(ActionEvent.java:77)
at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:743)
at javax.faces.component.UICommand.broadcast(UICommand.java:368)
at org.ajax4jsf.component.UIDataAdaptorBase.broadcast(UIDataAdaptorBase.java:1387)
at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:329)
at org.ajax4jsf.component.AjaxViewRoot.broadcastEventsForPhase(AjaxViewRoot.java:304)
at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:261)
at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:474)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:530)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)
at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at br.gov.rr.setrabes.util.HibernateSessionFilter.doFilter(HibernateSessionFilter.java:21)
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: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:852)
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)

10:28:49,841 ERROR AjaxViewRoot:335 - Error processing faces event for the component buscaorgaogestor:orgaosGestoresByNome:0
javax.faces.event.AbortProcessingException: /pages/relatorio/listaOrgaogestor.xhtml @36,104 actionListener="#{orgaogestorHandler.imprimirRelatorio}": java.lang.NullPointerException
at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:107)
at javax.faces.event.ActionEvent.processListener(ActionEvent.java:77)
at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:743)
at javax.faces.component.UICommand.broadcast(UICommand.java:368)
at org.ajax4jsf.component.UIDataAdaptorBase.broadcast(UIDataAdaptorBase.java:1387)
at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:329)
at org.ajax4jsf.component.AjaxViewRoot.broadcastEventsForPhase(AjaxViewRoot.java:304)
at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:261)
at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:474)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:530)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)
at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at br.gov.rr.setrabes.util.HibernateSessionFilter.doFilter(HibernateSessionFilter.java:21)
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: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:852)
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)
Caused by: java.lang.NullPointerException
at java.io.File.<init>(File.java:222)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:534)
at br.gov.rr.setrabes.handler.OrgaoGestorHandler.imprimirRelatorio(OrgaoGestorHandler.java:367)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.el.parser.AstValue.invoke(AstValue.java:191)
at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
at com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68)
at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:88)
… 36 more
23/11/2010 10:28:49 com.sun.facelets.FaceletViewHandler handleRenderException
GRAVE: Error Rendering View[/pages/relatorio/relatorioOrgaogestor.xhtml]
java.lang.IllegalStateException: Servlet response already use stream, Writer not possible
at org.ajax4jsf.webapp.FilterServletResponseWrapper.getWriter(FilterServletResponseWrapper.java:209)
at com.sun.facelets.FaceletViewHandler.createResponseWriter(FaceletViewHandler.java:416)
at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:573)
at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)
at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:530)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)
at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at br.gov.rr.setrabes.util.HibernateSessionFilter.doFilter(HibernateSessionFilter.java:21)
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: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:852)
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)[/code]

Algum problema relacionado ao método de impressão, mas que só acontece com a aplicação no servidor, e não acontece com a aplicação rodando pelo eclipse… Vou dar uma pesquisada, e qualquer novidade, eu posto a solução.

Se alguem tiver alguma dica, favor postar, mas lembrem-se de que a aplicação funciona perfeitamente rodando pelo eclipse, sem nenhuma exception.

Abs.

Resolvido.

Pessoal, era problema de configuração do server.xml.

A quem ajudou, agradeço!!

Legal…
e a configuração era…?
Falou tanto mas na hora de compartilhar a ajuda…

[quote=caiotuvo]Legal…
e a configuração era…?
Falou tanto mas na hora de compartilhar a ajuda…[/quote]

Brother, não me lembro agora como eu solucionei (2010…), mas se vc estiver com o mesmo problema, posta ae os logs de erros e os métodos pra gente ver.

Valeu. Achei minha solução aqui:

Para fazer o download não pode usar Ajax, eu estava usando a tag do A4J:

Mudei de <a4j:commandButton para <h:commandButton e funfou.

Meu código ficou assim:

response.setContentType("application/zip");
response.setCharacterEncoding("ISO-8859-1");
response.setHeader("Content-Disposition", "attachment; filename="+ nomeArquivo);
response.setHeader("Cache-control", "no-cache, no-store, must-revalidate"); 
response.setHeader("pragma", "no-cache");
response.getOutputStream().write(ZipHelper.loadBytes(nomeArquivo)); //obtem o arquivo em bytes
response.getOutputStream().flush();  
response.getOutputStream().close();  
FacesContext.getCurrentInstance().responseComplete();

abs.

Tive um problema igual… no meu caso os downloads pra alguns relatórios funcionavam e pra outro não.

Qual foi o ponto, quando vai trazer os dados na tela (JSF) e existe um dado NULL, o próprio JSF trata e deixa o campo como vazio, no meu caso eu estava tentando mandar umas Datas nulas para o EXCEL e isso estava causando o mesmo erro que você apontou.

O que eu fiz, tratei para quando o campo fosse NULO eu inserisse vazio.

if(opList.getDataExpiracaoTreinamento() != null){ label = new Label(7, line, new SimpleDateFormat("dd/MM/yyyy").format(opList.getDataExpiracaoTreinamento()), TextItem); s.addCell(label); }else{ label = new Label(7, line, getBlankNull(""), TextItem); s.addCell(label); }

Espero ter ajudado alguém com esse tipo de problema