JSF + Ajax4JSF + JasperReport

Pessoal,

To usando ADF Faces com Ajax4JSF.
Ao fazer a funcionalidade de impressão de relatório usando JasperReport estou enfrentando um erro
muito estranho.

A página não é exibida… o método é executado e nenhuma resposta é enviada.
Antes de usar o Ajax4JSF tudo funcionava perfeitamente.

Acredito que posso haver algum problema por estar manipulando a resposta na mão e o
filtro do Ajax se enrole com isto já que se eu tirar o mapeamento do filtro tudo volta ao normal

O estranho é que não é gerada nenhuma mensagem de erro. Simplesmente a resposta não
é enviada.

public void geraRelatorioPDF() {
		Collection vo = getDados(); 
		Map<String, Object> param = getParametros();
		String nomeArquivo = getArquivoJasper();
		try {
						
			InputStream fis = getExternalContext().getResourceAsStream(nomeArquivo);
			JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(vo);
			HttpServletResponse response = getResponse();
			ServletOutputStream responseStream = response.getOutputStream();
			
			JasperRunManager.runReportToPdfStream(fis, responseStream, param, ds);
			response.setContentType("application/pdf");
			responseStream.flush();
			responseStream.close();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (JRException e) {
			e.printStackTrace();
		}
	}

Se eu adicionar a linha ao fim do método

context.responseComplete();

O conteúdo é processado mas a página exibida é uma cheia de caracteres estranhos

Comigo está acontecendo o mesmo problema.

Parece que ele vai motrar algo, mas o navegador foca congelado.

No log aparece o erro:
java.lang.IllegalStateException: getOutputStream() has already been called for this response

se alguém souber responder por favor

Bom, uso o RichFaces que é praticamente o mesmo que Ajax4jsf. Eu uso uma solução parecida com esta que postei em outro tópico:

http://www.guj.com.br/posts/list/81020.java#432311

Vê se ajuda.

Abraços

Eu já olhei o seu código.

Infelizmente vejo que o problema não é no código. De alguma forma o PrintWriter está sendo usado e quando isso acontece não é possível usar o ouputStream.

Estou usando a implementação do JSF do myfaces.

Eu estou executando o código acima na ação de um botão… portanto não estou imprimindo nada quando tento executar o código acima…

se conseguir alguma coisa para me ajudar, te agradeço

Não tenho certeza, mas tive o mesmo problema, acho que o ajax4jsf faz algum tipo de controle no response
Porque verifique que o erro só acontece na linha

ServletOutputStream responseStream = response.getOutputStream();

Se eu estiver errado, pode me corrigir, pois tive o mesmo problema.

valew

java.lang.IllegalStateException: getOutputStream() has already been called for this response

Sim, o erro é nessa linha. Parece que há algum tipo de controle feito no response, mas não acho que seja o Ajax4J não.

Nesse momento eu estou tentando dar uma mechida nas minhas bibliotecas para ver o que acontece.

Se tiver alguma idéia posta aew pls.

Entao cara,
Tambem não consegui resolver este problema. Mas o que fiz, criei um servlet pra jogar o codigo html do relatorio (no meu caso)… também fiz um teste exportando pra pdf como te falei no outro topico
http://www.guj.com.br/posts/list/81046.java

Olha, essa sem dúvida é uma solução já que você tem toltal controle do objeto writer, porém não é uma muito atraente. Queria poder fazer a mesma coisa em um managed bean do JSF.

Pior que tentei atualizar do myfaces para o JSF-RI-1.2 e não consegui.

Vou tentar mais um pouco hoje para ver o que eu consigo.

Não utilize componentes ajax quando precisar escrever diretamente no response, principalmente para arquivos, downloads e relatórios.

Sendo, no lugar de usar um componente AJAX utilize-se de componentes que não efetua submissão AJAX.
Ex.: No lugar do a4j:commandButton use o h:commandButton.

Abraços e boa sorte.

rponte,

Sei que o topico é antigo, mas estou passando por um problema muito parecido, porém, estou usando JSF+Primeface em JEE6. Já tentei esta solução apontada por você, mas não resolveu…

Toda vez que solicito impressão do relatorio, apresenta a exception:

javax.servlet.ServletException: PWC3991: getOutputStream() has already been called for this response

O estranho é que localmente funciona muito bem, mas quando subo a aplicação para o servidor ocorre o erro.
Já pensei que poderia ser alguma questão relacionada a permissões, mas não consegui nada satisfatório.

Podem me ajudar?
Segue abaixo o log do glassfish.

Obs. o botão (p:commandButton) está em um dialog.

[code]
)|#]

[#|2012-03-26T08:02:26.669-0300|FINEST|glassfish3.0.1|javax.enterprise.system.core.security|_ThreadID=47;_ThreadName=Thread-1;ClassName=com.sun.enterprise.security.provider.BasePolicyWrapper;MethodName=doImplies;|JACC Policy Provider: PolicyWrapper.implies, context (GestaoSaude2/GestaoSaude2-war_war)- result was(false) permission ((java.io.SerializablePermission enableSubstitution))|#]

[#|2012-03-26T08:02:26.684-0300|FINE|glassfish3.0.1|javax.enterprise.system.core.security|_ThreadID=47;_ThreadName=Thread-1;ClassName=com.sun.enterprise.security.provider.BasePolicyWrapper;MethodName=doImplies;|JACC Policy Provider, failed Permission Check at :
java.lang.Exception
at com.sun.enterprise.security.provider.BasePolicyWrapper.doImplies(BasePolicyWrapper.java:404)
at com.sun.enterprise.security.provider.BasePolicyWrapper.implies(BasePolicyWrapper.java:240)
at java.security.ProtectionDomain.implies(ProtectionDomain.java:224)
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:352)
at java.security.AccessController.checkPermission(AccessController.java:546)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
at org.apache.felix.framework.BundleImpl.getResource(BundleImpl.java:568)
at org.jvnet.hk2.osgiadapter.OSGiModuleImpl$3.getResource(OSGiModuleImpl.java:428)
at com.sun.enterprise.v3.server.APIClassLoaderServiceImpl$APIClassLoader.getResource(APIClassLoaderServiceImpl.java:198)
at java.lang.ClassLoader.getResource(ClassLoader.java:998)
at java.lang.ClassLoader.getResource(ClassLoader.java:998)
at java.lang.ClassLoader.getResource(ClassLoader.java:998)
at java.lang.ClassLoader.getResource(ClassLoader.java:998)
at java.lang.ClassLoader.getResource(ClassLoader.java:998)
at org.glassfish.web.loader.WebappClassLoader.getResource(WebappClassLoader.java:1153)
at net.sf.jasperreports.engine.util.JRResourcesUtil.findClassLoaderResource(JRResourcesUtil.java:529)
at net.sf.jasperreports.repo.DefaultRepositoryService.getInputStream(DefaultRepositoryService.java:130)
at net.sf.jasperreports.repo.RepositoryUtil.findInputStream(RepositoryUtil.java:185)
at net.sf.jasperreports.repo.RepositoryUtil.getBytes(RepositoryUtil.java:201)
at net.sf.jasperreports.engine.JRImageRenderer.getInstance(JRImageRenderer.java:141)
at net.sf.jasperreports.engine.fill.JRFillImage.evaluateImage(JRFillImage.java:498)
at net.sf.jasperreports.engine.fill.JRFillImage.evaluate(JRFillImage.java:441)
at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:257)
at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:468)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillBandNoOverflow(JRVerticalFiller.java:440)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillPageHeader(JRVerticalFiller.java:404)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:265)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:129)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:903)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:832)
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:84)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:624)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:605)
at net.sf.jasperreports.engine.JasperRunManager.runReportToPdfStream(JasperRunManager.java:370)
at controle.RelatorioMB.gerarRelatorioWeb(RelatorioMB.java:120)
at controle.RelatorioMB.gerarRelatorio(RelatorioMB.java:85)
at controle.RelatorioMB.gerarRelatorioPacientes(RelatorioMB.java:145)
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 com.sun.el.parser.AstValue.invoke(AstValue.java:234)
at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:297)
at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:43)
at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:72)
at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:98)
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
at javax.faces.component.UICommand.broadcast(UICommand.java:315)
at javax.faces.component.UIData.broadcast(UIData.java:912)
at org.primefaces.component.datatable.DataTable.broadcast(DataTable.java:630)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:775)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1267)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:312)
at sun.reflect.GeneratedMethodAccessor261.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:319)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:352)
at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:209)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1516)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:226)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:229)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:334)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:814)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:743)
at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:936)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:682)
at java.lang.Thread.run(Thread.java:662)
|#]

[#|2012-03-26T08:02:26.684-0300|INFO|glassfish3.0.1|javax.enterprise.system.core.security|_ThreadID=47;_ThreadName=Thread-1;|JACC Policy Provider: Failed Permission Check, context(GestaoSaude2/GestaoSaude2-war_war)- permission((org.osgi.framework.AdminPermission (id=81) resolve,resource))|#]

[#|2012-03-26T08:02:26.684-0300|FINEST|glassfish3.0.1|javax.enterprise.system.core.security|_ThreadID=47;_ThreadName=Thread-1;ClassName=com.sun.enterprise.security.provider.BasePolicyWrapper;MethodName=getPermissions;|JACC Policy Provider: PolicyWrapper.getPermissions(d), context (GestaoSaude2/GestaoSaude2-war_war) permissions: java.security.Permissions@18ccb6c (
(java.util.PropertyPermission line.separator read)
(java.util.PropertyPermission java.vm.version read)
(java.util.PropertyPermission java.vm.specification.version read)
(java.util.PropertyPermission java.vm.specification.vendor read)
(java.util.PropertyPermission java.vendor.url read)
(java.util.PropertyPermission java.vm.name read)
(java.util.PropertyPermission * read,write)
(java.util.PropertyPermission os.name read)
(java.util.PropertyPermission java.vm.vendor read)
(java.util.PropertyPermission path.separator read)
(java.util.PropertyPermission java.specification.name read)
(java.util.PropertyPermission os.version read)
(java.util.PropertyPermission os.arch read)
(java.util.PropertyPermission java.class.version read)
(java.util.PropertyPermission java.version read)
(java.util.PropertyPermission file.separator read)
(java.util.PropertyPermission java.vendor read)
(java.util.PropertyPermission java.vm.specification.name read)
(java.util.PropertyPermission java.specification.version read)
(java.util.PropertyPermission java.specification.vendor read)
(java.net.SocketPermission localhost:1024- listen,resolve)
(java.net.SocketPermission * connect,resolve)
(java.io.FilePermission <> read,write)
(java.io.FilePermission /home/gestaosa/appservers/glassfish-3x/domains/domain1/lib/databases/- delete)
(java.io.FilePermission /home/gestaosa/appservers/glassfish-3x/tmp/- delete)
(java.io.FilePermission /home/gestaosa/appservers/glassfish-3x/domains/domain1/lib/jasperreports-4.1.1.jar read)
(javax.management.MBeanPermission [com.sun.messaging.jms.:] )
(unresolved javax.security.jacc.WebUserDataPermission /cadPaciente.jsf null)
(unresolved javax.security.jacc.WebUserDataPermission /cadExame.jsf null)
(unresolved javax.security.jacc.WebUserDataPermission /cadUserAdm.jsf null)
(unresolved javax.security.jacc.WebUserDataPermission /permissoes.jsf null)
(unresolved javax.security.jacc.WebUserDataPermission /cadUnidadeSaude.jsf null)
(unresolved javax.security.jacc.WebUserDataPermission /grafico.jsf null)
(unresolved javax.security.jacc.WebUserDataPermission /testRelatorio.jsf null)
(unresolved javax.security.jacc.WebUserDataPermission /principal.jsf null)
(unresolved javax.security.jacc.WebUserDataPermission /acessoNegado.jsf null)
(unresolved javax.security.jacc.WebUserDataPermission /agendamento.jsf null)
(unresolved javax.security.jacc.WebUserDataPermission /cadCategProcedimento.jsf null)
(unresolved javax.security.jacc.WebUserDataPermission /cadMedicamentos.jsf null)
(unresolved javax.security.jacc.WebUserDataPermission /procedimento.jsf null)
(unresolved javax.security.jacc.WebUserDataPermission /cadUserSaude.jsf null)
(unresolved javax.security.jacc.WebUserDataPermission /templatePrincipal.jsf null)
(unresolved javax.security.jacc.WebUserDataPermission /consultaMedica.jsf null)
(unresolved javax.security.jacc.WebUserDataPermission /:/cadCategProcedimento.jsf:/acessoNegado.jsf:/cadUnidadeSaude.jsf:/templatePrincipal.jsf:/cadUserAdm.jsf:/testRelatorio.jsf:/cadUserSaude.jsf:/cadMedicamentos.jsf:/cadPaciente.jsf:/principal.jsf:/cadExame.jsf:/consultaMedica.jsf:/procedimento.jsf:/permissoes.jsf:/grafico.jsf:/agendamento.jsf null)
(unresolved com.sun.corba.ee.impl.presentation.rmi.DynamicAccessPermission access null)
(unresolved javax.security.jacc.WebResourcePermission /:/cadCategProcedimento.jsf:/acessoNegado.jsf:/cadUnidadeSaude.jsf:/templatePrincipal.jsf:/cadUserAdm.jsf:/testRelatorio.jsf:/cadUserSaude.jsf:/cadMedicamentos.jsf:/cadPaciente.jsf:/principal.jsf:/cadExame.jsf:/consultaMedica.jsf:/procedimento.jsf:/permissoes.jsf:/grafico.jsf:/agendamento.jsf null)
(unresolved com.sun.enterprise.security.CORBAObjectPermission * )
(javax.management.MBeanTrustPermission register)
(java.lang.RuntimePermission getClassLoader)
(java.lang.RuntimePermission loadLibrary.
)
(java.lang.RuntimePermission createClassLoader)
(java.lang.RuntimePermission accessDeclaredMembers)
(java.lang.RuntimePermission getProtectionDomain)
(java.lang.RuntimePermission modifyThreadGroup)
(java.lang.RuntimePermission stopThread)
(java.lang.RuntimePermission setContextClassLoader)
(java.lang.RuntimePermission setProtectionDomain)
(java.lang.RuntimePermission queuePrintJob)
(java.lang.RuntimePermission accessClassInPackage.sun.security.
)
(java.lang.RuntimePermission accessClassInPackage.sun.misc)
(javax.security.auth.PrivateCredentialPermission javax.resource.spi.security.PasswordCredential * “*” read)
)
|#]

[#|2012-03-26T08:02:26.685-0300|FINE|glassfish3.0.1|javax.enterprise.system.core.security|_ThreadID=47;_ThreadName=Thread-1;ClassName=com.sun.enterprise.security.provider.BasePolicyWrapper$2;MethodName=run;|Domain that failed(ProtectionDomain (file:/home/gestaosa/appservers/glassfish-3x/domains/domain1/lib/jasperreports-4.1.1.jar )
java.net.URLClassLoader@14c803d
(principals com.sun.enterprise.security.web.integration.WebPrincipal “renatopedrosa”)

java.security.Permissions@7f4f6f (
(java.util.PropertyPermission line.separator read)
(java.util.PropertyPermission java.vm.version read)
(java.util.PropertyPermission java.vm.specification.version read)
(java.util.PropertyPermission java.vm.specification.vendor read)
(java.util.PropertyPermission java.vendor.url read)
(java.util.PropertyPermission java.vm.name read)
(java.util.PropertyPermission * read,write)
(java.util.PropertyPermission os.name read)
(java.util.PropertyPermission java.vm.vendor read)
(java.util.PropertyPermission path.separator read)
(java.util.PropertyPermission java.specification.name read)
(java.util.PropertyPermission os.version read)
(java.util.PropertyPermission os.arch read)
(java.util.PropertyPermission java.class.version read)
(java.util.PropertyPermission java.version read)
(java.util.PropertyPermission file.separator read)
(java.util.PropertyPermission java.vendor read)
(java.util.PropertyPermission java.vm.specification.name read)
(java.util.PropertyPermission java.specification.version read)
(java.util.PropertyPermission java.specification.vendor read)
(java.net.SocketPermission localhost:1024- listen,resolve)
(java.net.SocketPermission * connect,resolve)
(java.io.FilePermission /home/gestaosa/appservers/glassfish-3x/tmp/- delete)
(java.io.FilePermission /home/gestaosa/appservers/glassfish-3x/domains/domain1/lib/databases/- delete)
(java.io.FilePermission <> read,write)
(java.io.FilePermission /home/gestaosa/appservers/glassfish-3x/domains/domain1/lib/jasperreports-4.1.1.jar read)
(javax.management.MBeanPermission [com.sun.messaging.jms.:] )
(unresolved javax.security.jacc.WebUserDataPermission /:/cadCategProcedimento.jsf:/acessoNegado.jsf:/cadUnidadeSaude.jsf:/templatePrincipal.jsf:/cadUserAdm.jsf:/testRelatorio.jsf:/cadUserSaude.jsf:/cadMedicamentos.jsf:/cadPaciente.jsf:/principal.jsf:/cadExame.jsf:/consultaMedica.jsf:/procedimento.jsf:/permissoes.jsf:/grafico.jsf:/agendamento.jsf null)
(unresolved javax.security.jacc.WebUserDataPermission /consultaMedica.jsf null)
(unresolved javax.security.jacc.WebUserDataPermission /templatePrincipal.jsf null)
(unresolved javax.security.jacc.WebUserDataPermission /cadUserSaude.jsf null)
(unresolved javax.security.jacc.WebUserDataPermission /procedimento.jsf null)
(unresolved javax.security.jacc.WebUserDataPermission /cadMedicamentos.jsf null)
(unresolved javax.security.jacc.WebUserDataPermission /cadCategProcedimento.jsf null)
(unresolved javax.security.jacc.WebUserDataPermission /agendamento.jsf null)
(unresolved javax.security.jacc.WebUserDataPermission /acessoNegado.jsf null)
(unresolved javax.security.jacc.WebUserDataPermission /principal.jsf null)
(unresolved javax.security.jacc.WebUserDataPermission /testRelatorio.jsf null)
(unresolved javax.security.jacc.WebUserDataPermission /grafico.jsf null)
(unresolved javax.security.jacc.WebUserDataPermission /cadUnidadeSaude.jsf null)
(unresolved javax.security.jacc.WebUserDataPermission /permissoes.jsf null)
(unresolved javax.security.jacc.WebUserDataPermission /cadUserAdm.jsf null)
(unresolved javax.security.jacc.WebUserDataPermission /cadExame.jsf null)
(unresolved javax.security.jacc.WebUserDataPermission /cadPaciente.jsf null)
(unresolved com.sun.corba.ee.impl.presentation.rmi.DynamicAccessPermission access null)
(unresolved javax.security.jacc.WebResourcePermission /:/cadCategProcedimento.jsf:/acessoNegado.jsf:/cadUnidadeSaude.jsf:/templatePrincipal.jsf:/cadUserAdm.jsf:/testRelatorio.jsf:/cadUserSaude.jsf:/cadMedicamentos.jsf:/cadPaciente.jsf:/principal.jsf:/cadExame.jsf:/consultaMedica.jsf:/procedimento.jsf:/permissoes.jsf:/grafico.jsf:/agendamento.jsf null)
(unresolved com.sun.enterprise.security.CORBAObjectPermission * )
(javax.management.MBeanTrustPermission register)
(java.lang.RuntimePermission getClassLoader)
(java.lang.RuntimePermission loadLibrary.
)
(java.lang.RuntimePermission createClassLoader)
(java.lang.RuntimePermission accessDeclaredMembers)
(java.lang.RuntimePermission getProtectionDomain)
(java.lang.RuntimePermission modifyThreadGroup)
(java.lang.RuntimePermission stopThread)
(java.lang.RuntimePermission setContextClassLoader)
(java.lang.RuntimePermission setProtectionDomain)
(java.lang.RuntimePermission queuePrintJob)
(java.lang.RuntimePermission accessClassInPackage.sun.security.
)
(java.lang.RuntimePermission accessClassInPackage.sun.misc)
(javax.security.auth.PrivateCredentialPermission javax.resource.spi.security.PasswordCredential * “*” read)
)

)|#]

[#|2012-03-26T08:02:26.686-0300|FINEST|glassfish3.0.1|javax.enterprise.system.core.security|_ThreadID=47;_ThreadName=Thread-1;ClassName=com.sun.enterprise.security.provider.BasePolicyWrapper;MethodName=doImplies;|JACC Policy Provider: PolicyWrapper.implies, context (GestaoSaude2/GestaoSaude2-war_war)- result was(false) permission ((org.osgi.framework.AdminPermission (id=81) resolve,resource))|#]

[#|2012-03-26T08:02:26.687-0300|INFO|glassfish3.0.1|javax.enterprise.system.std.com.sun.enterprise.v3.services.impl|_ThreadID=47;_ThreadName=Thread-1;|Erro no relatorio: Exception e - name|#]

[#|2012-03-26T08:02:26.688-0300|SEVERE|glassfish3.0.1|controle.RelatorioMB|_ThreadID=47;_ThreadName=Thread-1;|The log message is null.
java.lang.IllegalArgumentException: name
at sun.misc.URLClassPath$Loader.findResource(URLClassPath.java:460)
at sun.misc.URLClassPath.findResource(URLClassPath.java:146)
at java.net.URLClassLoader$2.run(URLClassLoader.java:385)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findResource(URLClassLoader.java:382)
at java.lang.ClassLoader.getResource(ClassLoader.java:1003)
at java.lang.ClassLoader.getResource(ClassLoader.java:998)
at com.sun.enterprise.v3.server.APIClassLoaderServiceImpl$APIClassLoader.getResource(APIClassLoaderServiceImpl.java:205)
at java.lang.ClassLoader.getResource(ClassLoader.java:998)
at java.lang.ClassLoader.getResource(ClassLoader.java:998)
at java.lang.ClassLoader.getResource(ClassLoader.java:998)
at java.lang.ClassLoader.getResource(ClassLoader.java:998)
at java.lang.ClassLoader.getResource(ClassLoader.java:998)
at org.glassfish.web.loader.WebappClassLoader.getResource(WebappClassLoader.java:1153)
at net.sf.jasperreports.engine.util.JRResourcesUtil.findClassLoaderResource(JRResourcesUtil.java:529)
at net.sf.jasperreports.repo.DefaultRepositoryService.getInputStream(DefaultRepositoryService.java:130)
at net.sf.jasperreports.repo.RepositoryUtil.findInputStream(RepositoryUtil.java:185)
at net.sf.jasperreports.repo.RepositoryUtil.getBytes(RepositoryUtil.java:201)
at net.sf.jasperreports.engine.JRImageRenderer.getInstance(JRImageRenderer.java:141)
at net.sf.jasperreports.engine.fill.JRFillImage.evaluateImage(JRFillImage.java:498)
at net.sf.jasperreports.engine.fill.JRFillImage.evaluate(JRFillImage.java:441)
at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:257)
at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:468)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillBandNoOverflow(JRVerticalFiller.java:440)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillPageHeader(JRVerticalFiller.java:404)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:265)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:129)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:903)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:832)
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:84)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:624)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:605)
at net.sf.jasperreports.engine.JasperRunManager.runReportToPdfStream(JasperRunManager.java:370)
at controle.RelatorioMB.gerarRelatorioWeb(RelatorioMB.java:120)
at controle.RelatorioMB.gerarRelatorio(RelatorioMB.java:85)
at controle.RelatorioMB.gerarRelatorioPacientes(RelatorioMB.java:145)
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 com.sun.el.parser.AstValue.invoke(AstValue.java:234)
at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:297)
at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:43)
at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:72)
at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:98)
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
at javax.faces.component.UICommand.broadcast(UICommand.java:315)
at javax.faces.component.UIData.broadcast(UIData.java:912)
at org.primefaces.component.datatable.DataTable.broadcast(DataTable.java:630)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:775)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1267)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:312)
at sun.reflect.GeneratedMethodAccessor261.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:319)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:352)
at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:209)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1516)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:226)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:229)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:334)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:814)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:743)
at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:936)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:682)
at java.lang.Thread.run(Thread.java:662)
|#]

[#|2012-03-26T08:02:26.749-0300|SEVERE|glassfish3.0.1|javax.enterprise.resource.webcontainer.jsf.application|_ThreadID=47;_ThreadName=Thread-1;|Error Rendering View[/principal.xhtml]
java.lang.IllegalStateException: PWC3991: getOutputStream() has already been called for this response
at org.apache.catalina.connector.Response.getWriter(Response.java:707)
at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:224)
at com.sun.faces.context.ExternalContextImpl.getResponseOutputWriter(ExternalContextImpl.java:719)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.createResponseWriter(FaceletViewHandlingStrategy.java:854)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:357)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:126)
at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:273)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:127)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:313)
at sun.reflect.GeneratedMethodAccessor261.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:319)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:352)
at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:209)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1516)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:226)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:229)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:334)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:814)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:743)
at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:936)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:682)
at java.lang.Thread.run(Thread.java:662)
|#]

[#|2012-03-26T08:02:26.752-0300|FINE|glassfish3.0.1|javax.enterprise.system.core.security.com.sun.enterprise.security|_ThreadID=47;_ThreadName=Thread-1;ClassName=com.sun.enterprise.security.SecurityContext;MethodName=setCurrentSecurityContext;|SecurityContext: setCurrentSecurityContext method called|#]

[#|2012-03-26T08:02:26.753-0300|WARNING|glassfish3.0.1|javax.enterprise.system.container.web.com.sun.enterprise.web|_ThreadID=47;_ThreadName=Thread-1;|StandardWrapperValve[Faces Servlet]: PWC1406: Servlet.service() for servlet Faces Servlet threw exception
java.lang.IllegalStateException: PWC3991: getOutputStream() has already been called for this response
at org.apache.catalina.connector.Response.getWriter(Response.java:707)
at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:224)
at com.sun.faces.context.ExternalContextImpl.getResponseOutputWriter(ExternalContextImpl.java:719)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.createResponseWriter(FaceletViewHandlingStrategy.java:854)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:357)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:126)
at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:273)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:127)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:313)
at sun.reflect.GeneratedMethodAccessor261.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:319)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:352)
at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:209)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1516)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:226)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:229)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:334)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:814)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:743)
at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:936)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:682)
at java.lang.Thread.run(Thread.java:662)
|#][/code]

alan.vribeiro

Eu sei que faz tempo para resposta mas estava com o mesmo problema usando o primefaces, troquei o button do primefaces para o do HTML e foi normal.

Para quem precisar vou deixar o código abaixo para gerar PDF que to usando*

 public void pdf() throws JRException, IOException {
        JRBeanCollectionDataSource beanCollectionDataSource = new JRBeanCollectionDataSource(ADICIONE SUA LISTA AQUI);
        String reportPath = FacesContext.getCurrentInstance().getExternalContext().getRealPath("ARQUIVO.JASPER");
        JasperPrint jasperPrint = JasperFillManager.fillReport(reportPath, new HashMap(), beanCollectionDataSource);
        HttpServletResponse httpServletResponse = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
        httpServletResponse.addHeader("Content-disposition", "attachment; filename=report.pdf");
        ServletOutputStream servletOutputStream = httpServletResponse.getOutputStream();
        JasperExportManager.exportReportToPdfStream(jasperPrint, servletOutputStream);
        FacesContext.getCurrentInstance().responseComplete();

   }

Na Pagina

[code]<h:commandButton value=“PDF” action="#{meuBean.pdf()}" />

Alguém conseguiu resolver este problema?