更新 Eclipse 后,我无法在 JasperStudio 中生成报告
After update Eclipse I can not generate reports in JasperStudio
我没有什么问题。在以前的 Eclipse 版本(2019-06)中,我使用 JasperSoft(eclipse 中的插件)创建了许多报告。昨天我更新到新版本(大错?)但我无法创建报告。我一如既往地做所有事情,这是我的结果:
Exception in thread "main" java.lang.NullPointerException
at net.sf.jasperreports.components.table.fill.TableReport.createCell(TableReport.java:1600)
at net.sf.jasperreports.components.table.fill.TableReport$ReportBandCreator.createColumnCell(TableReport.java:497)
at net.sf.jasperreports.components.table.fill.TableReport$ColumnHeaderCreator.createColumnCell(TableReport.java:709)
at net.sf.jasperreports.components.table.fill.TableReport$ColumnHeaderCreator.createColumnCell(TableReport.java:686)
at net.sf.jasperreports.components.table.fill.TableReport$ReportBandCreator.visitColumn(TableReport.java:476)
at net.sf.jasperreports.components.table.fill.TableReport$ReportBandCreator.visitColumn(TableReport.java:442)
at net.sf.jasperreports.components.table.StandardColumn.visitColumn(StandardColumn.java:74)
at net.sf.jasperreports.components.table.fill.TableReport$ReportBandCreator.visit(TableReport.java:555)
at net.sf.jasperreports.components.table.fill.TableReport.createColumnHeader(TableReport.java:1112)
at net.sf.jasperreports.components.table.fill.TableReport.<init>(TableReport.java:300)
at net.sf.jasperreports.components.table.fill.FillTable.createFillTableSubreportFactory(FillTable.java:335)
at net.sf.jasperreports.components.table.fill.FillTable.createFillSubreport(FillTable.java:309)
at net.sf.jasperreports.components.table.fill.FillTable.evaluate(FillTable.java:131)
at net.sf.jasperreports.engine.fill.JRFillComponentElement.evaluate(JRFillComponentElement.java:110)
at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:381)
at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:500)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:2022)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:748)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:255)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:115)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:580)
at net.sf.jasperreports.engine.fill.BaseReportFiller.fill(BaseReportFiller.java:414)
at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:121)
at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:583)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:929)
at com.baeldung.jasperreports.Main.main(Main.java:242)
这是我的代码(较短的版本):
String outputFile = File.separatorChar + "D:\eclipse\JasperTableExample2.pdf";
Collection<Person> osoba = new ArrayList<Person>();
Person john = new Person();
john.setName("John");
john.setSurname("Doe");
john.setEmail("john@gmail.com");
john.setAge(22);
john.setX(5);
john.setY(5);
john.setZ(1);
john.setDateTime(LocalDateTime.of(2019,12,12,9,25));
osoba.add(john);
JRBeanCollectionDataSource personJRBean = new JRBeanCollectionDataSource(osoba);
Map<String, Object> parameters = new HashMap<String, Object>();
parameters.put("ItemDataSource", personJRBean);
JasperPrint jasperPrint = JasperFillManager.fillReport("D://path//NewReport.jasper", parameters, new JREmptyDataSource()); // this is #242 line at Main.java
OutputStream outputStream = new FileOutputStream(new File(outputFile));
JasperExportManager.exportReportToPdfStream(jasperPrint, outputStream);
我这里没有放人class。 Java 代码运行良好。
在 JasperStudio 中,我创建了新报告、新参数(代码中的名称 - ItemDataSource,将 class 设置为 net.sf.jasperreports.engine.data.JRBeanCollectionDataSource
)。然后我用新数据集创建一个 table 并选择这个:
然后我刚刚启动 Main 并生成了报告。
在更新之前,这个过程运行良好,但在 "update step" 之后我收到了这个错误。
我在使用相同的堆栈跟踪时遇到了完全相同的问题。
这不是关于 eclipse,而是关于 Jaspersoft Studio 版本。
我在 eclipse 中使用 Jaspersoft Studio 6.11.0,在运行时使用 jasperreports.jar 的 6.4.3 版。
我不得不将我的 pom.xml(我正在使用 maven)升级到 6.11.0 并修复了它。
我没有什么问题。在以前的 Eclipse 版本(2019-06)中,我使用 JasperSoft(eclipse 中的插件)创建了许多报告。昨天我更新到新版本(大错?)但我无法创建报告。我一如既往地做所有事情,这是我的结果:
Exception in thread "main" java.lang.NullPointerException
at net.sf.jasperreports.components.table.fill.TableReport.createCell(TableReport.java:1600)
at net.sf.jasperreports.components.table.fill.TableReport$ReportBandCreator.createColumnCell(TableReport.java:497)
at net.sf.jasperreports.components.table.fill.TableReport$ColumnHeaderCreator.createColumnCell(TableReport.java:709)
at net.sf.jasperreports.components.table.fill.TableReport$ColumnHeaderCreator.createColumnCell(TableReport.java:686)
at net.sf.jasperreports.components.table.fill.TableReport$ReportBandCreator.visitColumn(TableReport.java:476)
at net.sf.jasperreports.components.table.fill.TableReport$ReportBandCreator.visitColumn(TableReport.java:442)
at net.sf.jasperreports.components.table.StandardColumn.visitColumn(StandardColumn.java:74)
at net.sf.jasperreports.components.table.fill.TableReport$ReportBandCreator.visit(TableReport.java:555)
at net.sf.jasperreports.components.table.fill.TableReport.createColumnHeader(TableReport.java:1112)
at net.sf.jasperreports.components.table.fill.TableReport.<init>(TableReport.java:300)
at net.sf.jasperreports.components.table.fill.FillTable.createFillTableSubreportFactory(FillTable.java:335)
at net.sf.jasperreports.components.table.fill.FillTable.createFillSubreport(FillTable.java:309)
at net.sf.jasperreports.components.table.fill.FillTable.evaluate(FillTable.java:131)
at net.sf.jasperreports.engine.fill.JRFillComponentElement.evaluate(JRFillComponentElement.java:110)
at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:381)
at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:500)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:2022)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:748)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:255)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:115)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:580)
at net.sf.jasperreports.engine.fill.BaseReportFiller.fill(BaseReportFiller.java:414)
at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:121)
at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:583)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:929)
at com.baeldung.jasperreports.Main.main(Main.java:242)
这是我的代码(较短的版本):
String outputFile = File.separatorChar + "D:\eclipse\JasperTableExample2.pdf";
Collection<Person> osoba = new ArrayList<Person>();
Person john = new Person();
john.setName("John");
john.setSurname("Doe");
john.setEmail("john@gmail.com");
john.setAge(22);
john.setX(5);
john.setY(5);
john.setZ(1);
john.setDateTime(LocalDateTime.of(2019,12,12,9,25));
osoba.add(john);
JRBeanCollectionDataSource personJRBean = new JRBeanCollectionDataSource(osoba);
Map<String, Object> parameters = new HashMap<String, Object>();
parameters.put("ItemDataSource", personJRBean);
JasperPrint jasperPrint = JasperFillManager.fillReport("D://path//NewReport.jasper", parameters, new JREmptyDataSource()); // this is #242 line at Main.java
OutputStream outputStream = new FileOutputStream(new File(outputFile));
JasperExportManager.exportReportToPdfStream(jasperPrint, outputStream);
我这里没有放人class。 Java 代码运行良好。
在 JasperStudio 中,我创建了新报告、新参数(代码中的名称 - ItemDataSource,将 class 设置为 net.sf.jasperreports.engine.data.JRBeanCollectionDataSource
)。然后我用新数据集创建一个 table 并选择这个:
然后我刚刚启动 Main 并生成了报告。
在更新之前,这个过程运行良好,但在 "update step" 之后我收到了这个错误。
我在使用相同的堆栈跟踪时遇到了完全相同的问题。 这不是关于 eclipse,而是关于 Jaspersoft Studio 版本。
我在 eclipse 中使用 Jaspersoft Studio 6.11.0,在运行时使用 jasperreports.jar 的 6.4.3 版。 我不得不将我的 pom.xml(我正在使用 maven)升级到 6.11.0 并修复了它。