Мы используем jasper API (JasperFillManager.fillReport, JasperExportManager.exportReportToPdfFile)
Мы хотим выполнить этот отчет в цикле с другими параметрами, поэтому добавили следующий код
JasperPrint jasperPrint = null;
// Fill report
Iterator i1 = l1.iterator();
Iterator i2 = l2.iterator();
int i = 1;
while (i1.hasNext() && i2.hasNext()) {
parameters.put("SUBJECTOID", (String) i1.next());
parameters.put("HISTORYRECORD", (String) i2.next());
try (ProfilePoint fillReport = ProfilePoint
.profileAction("ProfAction_ReportHelper_fillJasperReport")) {
jasperReport = JasperCompileManager.compileReport(jrxmlPath);
jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, emptyDataSource);
System.out.println("fillReport**********" + i);
}
// Export to PDF
try (ProfilePoint exportReport = ProfilePoint
.profileAction("ProfAction_ReportHelper_exportJasperReport")) {
JasperExportManager.exportReportToPdfFile(jasperPrint,
"C:\\JASPER\\JASPEROUTPUT\\Report" + i + ".pdf");
System.out.println("exportReportToPdfFile**********" + i);
}
i++;
jasperPrint = null;
jasperReport = null;
Итак, что происходит, у нас 15 Parameteres, поэтому генерируется 15 файлов PDF, но только первый файл PDF содержит данные, остальные 14 пустые.
Мы пробовали несколько вещей, таких как одна компиляция, многократная компиляция, извлечение кода jasper в метод, но результат все тот же
Есть ли кеш или какая-то настройка в яшме или что-то подобное?