IReport (Java Web)

Pessoal, instalei o plugin do IReport no netbeans, e fiz um relatorio TESTE no Ireport.

Como eu faço para chamar este relatorio Teste que fiz, dentro de um metodo JAVA,

No meu IReport, gostaria de ter parametros, pois iria preencher atraves da minha pagina .

Minha aplicação sera Java Web

Alguem pode dar alguma dica ??

Tentei fazer da seguinte forma :

    
    public void vizualizarimpressao() {        
      try  
        {  
            JasperPrint jasperPrint = JasperFillManager.fillReport("relatorios/guiaconsulta.jasper", new HashMap(), null);    
            JasperViewer.viewReport(jasperPrint, false);    
        }  
        catch(JRException erro)  
        {              
            System.out.print("teste"+erro);
        }                  
    } 
    

Porem esta dando erro :

reference to fillReport is ambiguous, both method fillReport(String,Map,Connection) in JasperFillManager and method fillReport(String,Map,JRDataSource) in JasperFillManager match

Obs. este relatorio nao terá acesso a banco de dados, apenas passarei por parametros alguns campos.

tente assim:

ServletContext context = getServletContext();   
	   byte[] bytes = null;   
	   try {   
	         
	         
	      // carrega os arquivos jasper   
	      JasperReport relatorioJasper = (JasperReport)JRLoader.loadObject(   
	              context.getRealPath("/WEB-INF/reports/guiaconsulta.jasper"));   
	       
	      String pathJasper = getServletContext().getRealPath(
          "/WEB-INF/reports/")
          + "/";
          String path = getServletContext().getRealPath("/");
          
	      // parâmetros, se houverem   
	      Map parametros = new HashMap();   
	      parametros.put("codcli",codFun);//valor do consumidor
	      //parametros.put("caminhoImg", pathJasper + "Partener.jpg"); 
	      parametros.put("dtIni","'"+dtini+"'");//valor data inicial
	  
	      
	      // direciona a saída do relatório para um stream   
	      bytes = JasperRunManager.runReportToPdf(relatorioJasper,parametros,null);   
	      } 
	      
	      catch (JRException e) {   
	       e.getMessage();  
	      }   
	      // envia o relatório em formato PDF para o browser   
	      res.setContentType("application/pdf");
	      
	      res.setContentLength(bytes.length);   
	      ServletOutputStream ouputStream = res.getOutputStream();   
	      ouputStream.write(bytes, 0, bytes.length);   
	      ouputStream.flush();   
	      ouputStream.close();    
	     
	      try {
			conexao.MinhaConexao.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.getMessage();
			e.printStackTrace();
		}

Só um duvida,

Qual componente que coloco no relatorio Ireport como parametros?? preciso definir alguns componentes como parametros, como eu faço isso ?

parametros.put(“codcli”,codFun);//valor do consumidor

adicionou o asperreports-3.5.1.jar, no meu projeto.

e estou executando o meu metodo :

            Map parameters = new HashMap();  
            JasperDesign jasperDesign = JRXmlLoader.load("relatorios/guiaconsulta.jasper");  
            JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);          
            JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters);  
            JasperViewer.viewReport(jasperPrint);  

porem na linha


            JasperDesign jasperDesign = JRXmlLoader.load("relatorios/guiaconsulta.jasper");  

da erro na linha abaixo :

AVISO: #{cadguiaMbean.vizualizarimpressao}: java.lang.NoClassDefFoundError: org/apache/commons/digester/Digester
javax.faces.FacesException: #{cadguiaMbean.vizualizarimpressao}: java.lang.NoClassDefFoundError: org/apache/commons/digester/Digester
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:118)
at javax.faces.component.UICommand.broadcast(UICommand.java:315)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
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:593)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1550)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
at java.lang.Thread.run(Thread.java:662)
Caused by: javax.faces.el.EvaluationException: java.lang.NoClassDefFoundError: org/apache/commons/digester/Digester
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:102)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
… 31 more
Caused by: java.lang.NoClassDefFoundError: org/apache/commons/digester/Digester
at br.uniplan.controle.CadguiaMb.vizualizarimpressao(CadguiaMb.java:186)
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:254)
at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:302)
at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:39)
at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50)
at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
… 32 more
Caused by: java.lang.ClassNotFoundException: org.apache.commons.digester.Digester
at com.sun.enterprise.loader.ASURLClassLoader.findClassData(ASURLClassLoader.java:808)
at com.sun.enterprise.loader.ASURLClassLoader.findClass(ASURLClassLoader.java:696)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
… 43 more

Falta adicionar mais algum JAR ?

vc colocou o jar commons-digester.jar?

segue em anexo os meu jar’s do projeto

porem esta dando o erro abaixo :

AVISO: #{cadguiaMbean.vizualizarimpressao}: java.lang.NoClassDefFoundError: Could not initialize class net.sf.jasperreports.engine.xml.JRXmlDigesterFactory
javax.faces.FacesException: #{cadguiaMbean.vizualizarimpressao}: java.lang.NoClassDefFoundError: Could not initialize class net.sf.jasperreports.engine.xml.JRXmlDigesterFactory
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:118)
at javax.faces.component.UICommand.broadcast(UICommand.java:315)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
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:593)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1550)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229)

Pessoal,

Fiz a rotina abaixo :


            FacesContext facesContext = FacesContext.getCurrentInstance();
            facesContext.responseComplete();

            ServletContext scontext = (ServletContext) facesContext.getExternalContext().getContext();
            HashMap parameters = new HashMap();
            
            JasperPrint jasperPrint = JasperFillManager.fillReport(scontext.getRealPath("/WEB-INF/report/guiaconsulta.jasper"), parameters);            
            JasperViewer.viewReport(jasperPrint); 
            
            System.out.print("teste");

Porem esta dando o erro abaixo :

AVISO: #{reportBean.vizualizarimpressao}: java.awt.HeadlessException
javax.faces.FacesException: #{reportBean.vizualizarimpressao}: java.awt.HeadlessException
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:118)
at javax.faces.component.UICommand.broadcast(UICommand.java:315)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
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:593)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1550)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
at java.lang.Thread.run(Thread.java:662)
Caused by: javax.faces.el.EvaluationException: java.awt.HeadlessException
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:102)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
… 31 more
Caused by: java.awt.HeadlessException
at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:159)
at java.awt.Window.(Window.java:433)
at java.awt.Frame.(Frame.java:403)
at java.awt.Frame.(Frame.java:368)
at javax.swing.JFrame.(JFrame.java:158)
at net.sf.jasperreports.view.JasperViewer.(JasperViewer.java:264)
at net.sf.jasperreports.view.JasperViewer.viewReport(JasperViewer.java:652)
at net.sf.jasperreports.view.JasperViewer.viewReport(JasperViewer.java:584)
at net.sf.jasperreports.view.JasperViewer.viewReport(JasperViewer.java:497)
at controle.ReportBean.vizualizarimpressao(ReportBean.java:45)
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:254)
at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:302)
at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:39)
at o

Tentei executar a seguinte rotina, porem fui debugar para ver percebi que na linha abaixo "reportStream"
esta preenchendo como nullo

Obs. estou anexando o debug, para ver se vc pode me ajudar por favor


              //pega o caminho do arquivo .jasper da aplicação    
              InputStream reportStream = context.getExternalContext().getResourceAsStream(caminhoRelatorio);    

                   HttpSession sessao = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false);    
                    File logoFile = new File(sessao.getServletContext().getRealPath(System.getProperty("file.separator")+"relatorios"+System.getProperty("file.separator")));      
                    String caminho = logoFile.getAbsolutePath();   
                    HashMap parameters = new HashMap();        
                      
                    executarRelatorio(caminho, parameters, "guiaconsulta.jasper", null);  
      
      
      
           public static void executarRelatorio(String caminhoRelatorio, Map<String, Object> parametros, String nomeRel, JRBeanCollectionDataSource fonteDados) {    
                  
              FacesContext context = FacesContext.getCurrentInstance();    
              HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();    
                  
              //pega o caminho do arquivo .jasper da aplicação    
              InputStream reportStream = context.getExternalContext().getResourceAsStream(caminhoRelatorio);    
            
              response.setHeader("Content-Disposition", "attachment; filename="+ nomeRel +".pdf");    
              response.setContentType("application/download");    
              response.setHeader("Pragma", "no-cache");    
              try {    
                 ServletOutputStream servletOutputStream = response.getOutputStream();    
                     
                 //envia parametros para o relatório    
                 if (parametros == null){    
                    parametros = new HashMap<String, Object>();    
                 }    
                  
                 //envia para o navegador o PDF gerado    
                 JasperRunManager.runReportToPdfStream(reportStream, servletOutputStream, parametros, fonteDados);    
                 servletOutputStream.flush();    
                 servletOutputStream.close();    
                  
              } catch (JRException e) {    
                 e.printStackTrace();    
                 context.responseComplete();    
                     
              } catch (IOException e) {    
                 e.printStackTrace();    
                 context.responseComplete();    
                     
              }catch(Exception e){    
                 e.printStackTrace();    
                 context.responseComplete();    
                   
              }    
              context.responseComplete();    
                  
           }            

O erro é esse :

GRAVE: java.lang.NullPointerException
at java.io.ObjectInputStream$PeekInputStream.read(ObjectInputStream.java:2265)
at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2278)
at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2749)
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:779)
at java.io.ObjectInputStream.(ObjectInputStream.java:279)
at net.sf.jasperreports.engine.util.ContextClassLoaderObjectInputStream.(ContextClassLoaderObjectInputStream.java:58)
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:243)
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:228)
at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:632)
at net.sf.jasperreports.engine.JasperRunManager.runToPdfStream(JasperRunManager.java:428)
at net.sf.jasperreports.engine.JasperRunManager.runReportToPdfStream(JasperRunManager.java:849)
at controle.ReportBean.executarRelatorio(ReportBean.java:149)
at controle.ReportBean.vizualizarimpressao(ReportBean.java:51)
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:254)
at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:302)
at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:39)
at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50)
at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
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.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)

Read more: http://javafree.uol.com.br/topic-889191-IReport-Java-Web.html#ixzz2LTKCPOUa