使用DynamicReports时出错:java.lang.NoSuchFieldError:ELEMENT_GROUP_HEIGHT

时间:2016-08-25 15:29:21

标签: java dynamic-reports

我使用的是最新版本的DynamicReports,我收到以下错误:

Loading XML bean definitions from URL [jar:file:/home/diego.queres/Desenv/Java/Projetos%20Java/VAGAS/ProcessadorRelatoriosJasper/dist/run4454548/lib/dynamicreports-examples-4.1.1.jar!/net/sf/dynamicreports/examples/genericelement/openflashchart/openflashchart.xml]
java.lang.NoSuchFieldError: ELEMENT_GROUP_HEIGHT
    at net.sf.dynamicreports.jasper.transformation.ConstantTransform.stretchType(ConstantTransform.java:1072)
    at net.sf.dynamicreports.jasper.transformation.ComponentTransform.component(ComponentTransform.java:190)
    at net.sf.dynamicreports.jasper.transformation.ComponentTransform.component(ComponentTransform.java:116)
    at net.sf.dynamicreports.jasper.transformation.ComponentTransform.list(ComponentTransform.java:248)
    at net.sf.dynamicreports.jasper.transformation.ComponentTransform.component(ComponentTransform.java:112)
    at net.sf.dynamicreports.jasper.transformation.BandTransform.band(BandTransform.java:132)
    at net.sf.dynamicreports.jasper.transformation.BandTransform.transform(BandTransform.java:58)
    at net.sf.dynamicreports.jasper.transformation.JasperTransform.transform(JasperTransform.java:81)
    at net.sf.dynamicreports.jasper.builder.JasperReportBuilder.toJasperReportDesign(JasperReportBuilder.java:269)
    at net.sf.dynamicreports.jasper.builder.JasperReportBuilder.getJasperParameters(JasperReportBuilder.java:296)
    at net.sf.dynamicreports.jasper.builder.JasperReportBuilder.toJasperPrint(JasperReportBuilder.java:307)
    at net.sf.dynamicreports.jasper.builder.JasperReportBuilder.export(JasperReportBuilder.java:634)
    at net.sf.dynamicreports.jasper.builder.JasperReportBuilder.toXlsx(JasperReportBuilder.java:607)

当我拨打JasperReportBuilder.toXlsx()时会发生此错误。

我的源代码:

JasperReportBuilder report = report();
List<TextColumnBuilder> lsColumns = getDRColumnsFromRecordset(rs);
for (TextColumnBuilder tcbColumn : lsColumns) {
    report.addColumn(tcbColumn);
}
report.title(cmp.text("Title")); 
report.pageFooter(cmp.pageXofY());      
report.ignorePageWidth();
report.ignorePagination();
report.setDataSource(rs);
report.toXlsx(xlsxExporter);   //throw error in this line

1 个答案:

答案 0 :(得分:1)

我发现了问题的解决方案。在多次测试动态报告的依赖关系后,我可以得到解决方案。

我在我的应用程序中使用JasperReports 6.1.0。它从Jasper模板(jrxml)生成报告。我决定使用动态报告添加资源以生成没有jrxml的报告。

我使用动态报告的版本是版本4.1.1,最新版本。我查看了所有版本(可在Source Forge上找到:https://sourceforge.net/projects/dynamicreports/files/dynamicreports),并意识到此版本使用JasperReports版本6.2.2。 所以我尝试了一个动态报告版本,默认使用JasperReports 6.1.0。 :动态报告版本4.0.1。

现在它正在运作!

我们可以从中学到的是:检查动态报告使用的JasperReports版本非常重要,因此不存在不兼容问题。