我正在尝试使用动态报告开源库。
下面是我的pom.xml
<dependencies>
<!-- https://mvnrepository.com/artifact/net.sourceforge.dynamicreports/dynamicreports-core -->
<dependency>
<groupId>net.sourceforge.dynamicreports</groupId>
<artifactId>dynamicreports-core</artifactId>
<version>6.1.0</version>
</dependency>
下面是我的Java代码
List<Employee> employeeList = new ArrayList<Employee>();
employeeList.add(new Employee("1", "Selva"));
report()//create new report design
.columns(
Columns.column("ID", "id", String.class),
Columns.column("Name", "name" , String.class)
) //adds columns
.setDataSource(employeeList)
.toPdf(new FileOutputStream(new File("D://selvapdf.pdf"))); //export report to pdf
此代码正在错误中解决
Exception in thread "main" java.lang.NoClassDefFoundError: com/lowagie/text/DocumentException
at net.sf.dynamicreports.jasper.transformation.ExporterTransform.pdf(ExporterTransform.java:440)
at net.sf.dynamicreports.jasper.transformation.ExporterTransform.transform(ExporterTransform.java:134)
at net.sf.dynamicreports.jasper.builder.JasperReportBuilder.export(JasperReportBuilder.java:891)
at net.sf.dynamicreports.jasper.builder.JasperReportBuilder.toPdf(JasperReportBuilder.java:731)
at net.sf.dynamicreports.jasper.builder.JasperReportBuilder.toPdf(JasperReportBuilder.java:720)
at com.sample.dynamicreport.App.main(App.java:33)
Caused by: java.lang.ClassNotFoundException: com.lowagie.text.DocumentException
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 6 more
为什么动态报表模块不具有此依赖性。是我应该添加还是任何其他新方法。任何帮助将不胜感激!!
iText
?可能您缺少称为iText
的依赖项,导出到PDF时需要此依赖项。因此,编译器抛出NoClassDefFoundError并说缺少以下类:com.lowagie.text.DocumentException
。
要么重新导入您的maven项目,并确保依赖项iText
或至少一个名为com.lowagie.text.DocumentException
的类在类路径中。
或者您可以使用较新版本 DynamicReport's GitHub repository。这基于Jasper Reports版本6.5.1,该版本再次使用iText将报告导出为PDF。
如果在iText
的依赖项中搜索JasperReports 6.1.0 on Maven,则会发现:
<dependency>
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
<version>2.1.7.js6</version>
<scope>compile</scope>
<!-- lines omitted -->
</dependency>
此依赖性应与您的DynamicReports版本6.1.0一起使用。因此,您可以将其单独添加到您的POM。