Saudações colegas desenvolvedores, estou tentando gerar relatórios usando a ferramenta Ireport e incorporando-os a uma pasta dentro do meu projeto no netbeans, porém na hora de executar o método:
JasperPrint print = JasperFillManager.fillReport(jasper, parametros, conexao);
retorna um erro de NullPointerException.Abaixo disponho a classe que estou usando para chamar o relatório.Já pesquisei alguns blogs e baseado neles cheguei a essas classes.
RelatorioBean.java
@Named
@SessionScoped
public class RelatorioBean extends DatabaseUtil{
private String saida;
public String geraRelatorioPassandoConexao() {
saida = null;
String jasper = getDiretorioReal("/relatorios/teste.jasper");
System.out.print("Valor variável Jasper" + jasper);
Connection conexao = null;
try {
FacesContext facesContext = FacesContext.getCurrentInstance();
HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(true);
// Abro a conex?o com o banco que ser· passada para o JasperReports
conexao = getConnection();
// Mando o jasper gerar o relatÛrio
HashMap parametros = new HashMap();
//
JasperPrint print = JasperFillManager.fillReport(jasper, parametros, conexao);
System.out.println(print.toString());
// Gero o PDF
//preenchePdf(print);
JasperViewer jrv = new JasperViewer(print);
jrv.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
// Sempre mando fechar a conex?o, mesmo que tenha dado erro
if (conexao != null)
conexao.close();
} catch (SQLException e) {
}
}
return "exibeRelatorio";
}
public String getSaida() {
return saida;
}
public void setSaida(String saida) {
this.saida = saida;
}
private String getDiretorioReal(String diretorio) {
HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false);
return session.getServletContext().getRealPath(diretorio);
}
}
Se alguém puder me auxliar fico bem grato, pois estou já há alguns dias apanhando desse relatório.
att.
Alexandre