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