net.sf.jasperreports.engine.JRException:从Jasper报告中的文件加载对象时出错

时间:2018-06-29 13:05:17

标签: java jasper-reports

我使用了 jasperreports-3.7.0.jar jasperreports-extensions-3.5.3.jar jasperreports-fonts-3.6.1.jar < / em>

但是当我运行时会发生异常

net.sf.jasperreports.engine.JRException: Error loading object from file : D:\DPL\dplpayroll\web\jasperReport\Form-16_partB.jrxml
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:94)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:243)

我的代码:

String reportSource = rep_path + "/Form-16_partB.jrxml";
String reportDest = rep_path + "/PartB.pdf";  
String rep = reportSource;
String rec = rep.replaceAll("jrxml", "jasper");
File file = new File(rec);
if (!file.exists()) {
   net.sf.jasperreports.engine.design.JasperDesign jasperDesign = net.sf.jasperreports.engine.xml.JRXmlLoader.load(rep);
   JasperCompileManager.compileReportToFile(jasperDesign, rec);
}
JasperPrint jasperPrint = JasperFillManager.fillReport(reportSource, params, conn);
JRPdfExporter exporter = new JRPdfExporter();
exporter.setParameter(JRPdfExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRPdfExporterParameter.OUTPUT_FILE_NAME, reportDest);
exporter.exportReport();

2 个答案:

答案 0 :(得分:0)

JasperFillManager.fillReport等待编译的* .jasper模板的路径,而不是* .jrxml

答案 1 :(得分:0)

也许您可以使用

   inputStream = new FileInputStream(PATH TO YOUR REPORT.jrxml);
   JasperReport jasperReport = JasperCompileManager.compileReport(inputStream);
   JasperPrint jp = JasperFillManager.fillReport(jasperReport, param, dataSource.getConnection());