项目场景:
使用JasperReports进行PDF导出
问题描述
请求导出时抛出异常:
nested exception is java.lang.NoClassDefFoundError: com/lowagie/text/pdf/PdfContentByte
原因分析:
经过多方百度,发现JasperReports
依赖只使用itext:2.1.7
版本
发现源:https://blog.csdn.net/zhaluo_dehezi/article/details/83990351
为什么只使用2.1.7
,官方也给了回复:https://community.jaspersoft.com/jasperreports-library/issues/14011
解决方案
将itext
版本换为2.1.7
:
<!--jasperReport 的依赖只和 itext的 2.1.7 版本兼容.不兼容其他版本-->
<!--https://community.jaspersoft.com/jasperreports-library/issues/14011-->
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>6.19.0</version>
<exclusions>
<!--与下面的依赖冲突,原依赖:2.1.7.js9,可能无法下载,所以排除-->
<exclusion>
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
<version>2.1.7</version>
</dependency>