Problema ao chamar relatório construído no iReport dentro de aplicação JSF

Pessoal,

Estou tentando chamar um relatório feito no iReport através do seguinte método

... 
public boolean chamarRelatorio() { 
   
         String caminhoRelJasper = "/br/ufpb/nti/diploma/ireport/jrxml/report1.jrxml"; 

          InputStream relJasper = getClass().getResourceAsStream(caminhoRelJasper); 
          Map parametros = new HashMap(); parametros.put("situacao", 1); 
          GerarPDFCompilando gera = new GerarPDFCompilando();
          try  { 

                gera.geraPDFaqui(relJasper, parametros); 
                return true; 

           } catch(Exception e) { 

            return false; 
           } 
}
...

Abaixo, segue o código da classe GerarPDFCompilando com o metodo geraPDFaqui


public class GerarPDFCompilando{  
        
      public GerarPDFCompilando() {  
                
      public void geraPDFaqui(InputStream relJasper, Map parametros) throws IOException, ClassNotFoundException, SQLException {  
               
                 FacesContext facesContext = FacesContext.getCurrentInstance();  
                 HttpServletRequest request = (HttpServletRequest) facesContext.getExternalContext().getRequest();  
                 HttpServletResponse response = (HttpServletResponse) facesContext.getExternalContext().getResponse();  
       
                 Connection con = ConexaoDB.getInstance();  
              
                JasperPrint impressao = null;  
   
                 try {  

                         JasperReport jasper = JasperCompileManager.compileReport(relJasper);  
                         //Conversão do Formato Jasper para PDF. Aqui irá gerar o Arquivo para o usuário.  
                         impressao = JasperFillManager.fillReport(jasper, parametros, con);  
                         byte[] bytes = JasperExportManager.exportReportToPdf(impressao);  
                         response.setHeader("Content-Disposition", "attachment; filename=PRPG.pdf");   
                         response.setContentType("application/pdf");  
                         response.setContentLength(bytes.length);  
                         ServletOutputStream ouputStream = response.getOutputStream();  
                         ouputStream.write(bytes, 0, bytes.length);  
                         ouputStream.flush();  
                         ouputStream.close();        
  
  .            } catch (JRException e) { 
 
                  System.out.println(e.getMessage());  
               }  
    }  
}  

E abaixo a chamada do método na página

...
   <div>  
   <h:commandButton action="#{consultaDiplomaBean.chamarRelatorio}" value="Gerar Relatorio" rendered="true" style="margin-left:300px; margin-top:10px"/>  
   </div>  
...  

Ao usar o debug do Eclipse, percebi que está sendo atribuída uma referência NULL ao objeto relJasper no início do método chamarRelatorio

...  
InputStream relJasper = getClass().getResourceAsStream(caminhoRelJasper);  
...  

Alguém poderia me ajudar a descobrir o motivo pelo qual está ocorrendo esta referência NULL ?
Agradece,

Max Carvalho

deve estar null porque ele não encontrou o arquivo report1.jrxml Dá uma conferida se é esse caminho mesmo.

post bem antigo, tb o cara nao postou a solucao, mas o roberto salva a galera: http://www.furutani.com.br/2010/02/nullpointerexception-ou-filenotfoundexception-ao-executar-relatorios-com-jasper-reports/comment-page-1/#comment-2410 veja ai hehe

Opa Camilo, td bem?
Fico feliz q o post tenha ajudado! :smiley:

pode ter certeza que ajudou e muitooo. eu passei 2 hrs ou mais tentando fix isso hj, e do nd achei seu post, deveria ter procurado primeiro no google antes de tentar fix huauahuha.