从4个小时开始,我正在通过Java Code创建JasperReports。 我已经设法生成基于postgreSQL的pdf报告。
我现在正尝试使用简单的main()
生成基于elasticsearch数据的报告public static void main(String[] args) {
try {
Map<String, Object> parametres = new HashMap<String, Object>();
parametres.put("DATE_DEBUT", new Date());
parametres.put("DATE_FIN", new Date(115, 8, 20));
parametres.put("DATE_FIN_AFFICHAGE", new Date(115, 8, 20));
parametres.put("SUBREPORT_DIR", "rapports/");
parametres.put("IMAGES_DIR", "rapports/");
//JasperCompileManager.compileReport("rapports/rapport_mensuel.jrxml");
JasperPrint jp = JasperFillManager.fillReport("rapports/rapport_mensuel.jasper", parametres);
JasperExportManager.exportReportToPdfFile(jp, "test.pdf");
} catch (JRException e) {
System.err.println("Exception Jasper " + e.getMessage());
}
}
}
我收到了这个错误:
线程“main”中的异常 net.sf.jasperreports.engine.JRRuntimeException:没有查询执行器 工厂注册了'elasticsearch'语言。在 net.sf.jasperreports.engine.util.JRQueryExecuterUtils.getExecuterFactory(JRQueryExecuterUtils.java:114) 在 net.sf.jasperreports.engine.fill.JRFillDataset.createQueryDatasource(JRFillDataset.java:1108) 在 net.sf.jasperreports.engine.fill.JRFillDataset.initDatasource(JRFillDataset.java:689) 在 net.sf.jasperreports.engine.fill.JRBaseFiller.setParameters(JRBaseFiller.java:1281) 在 net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:900) 在net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:152) 在 net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:464) 在 net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:300) 在 net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:757) 在fr.sigma.jasper.pdf.Main.main(Main.java:165)
我发现JasperStudio(https://github.com/WedjaaOpen/ElasticJasper)存在一个ElasticSearch插件。它在JasperStudio中运行得非常好,但是我想将它导出到Jar中。
如何通过JasperStudio生成我的jar?