Olá, sempre que usei o ireport usei uma conexao com banco de dados pra gerar o relatório, agora preciso gerar o relatório com JRDataSource, estou a 3 dias sem conseguir, segue o código abaixo
JRDataSource jrds = new JRBeanCollectionDataSource(listSaldo);
// parametros do relatorio
HashMap parameters = new HashMap();
parameters.put("listSaldo", jrds);
// lendo arquivo jasper
File reportFile = new File(sc.getRealPath("/Relatorio/rel_saldo.jasper"));
byte[] bytes = null;
try {
// bytes = JasperRunManager.runReportToPdf(reportFile.getPath(), parameters, new JREmptyDataSource());
JasperPrint print = JasperFillManager.fillReport(reportFile.getPath(), parameters,jrds); // LINHA ONDE OCORRE O ERRO
JasperViewer.viewReport(print, false);
} catch (Exception e) {
e.printStackTrace();
return;
}
if (bytes != null && bytes.length > 0) {
response.setContentType("application/pdf");
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
}
} catch (Exception e) {
e.printStackTrace();
}
O erro:
java.lang.NullPointerException
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:89)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:601)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:517)
A lista não está nula pois já verifiquei, se alguem poder ajudar agradeço.