我正在使用 itextpdf-5.5.6.jar 和 bcprov-jdk15on-1.60.jar,但出现异常: java.lang.NoClassDefFoundError:org.bouncycastle.asn1.ASN1Encodable at com.itextpdf.text.pdf.PdfEncryption
如何解决?
itext POM 将 bouncycastle 标记为可选
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.49</version>
<type>jar</type>
<scope>compile</scope>
<optional>true</optional>
</dependency>
因此您必须在项目 POM 中包含 bouncycastle 以确保它可用。
请注意,itext5.5.6 推荐使用 bouncycastle 1.49
http://www.bouncycastle.org/latest_releases.html
根据您的JDK版本从上面的链接中找到合适的jar文件。
另一种方式:
您可以通过以下网址检查itext 5.5的依赖关系。
http://mvnrepository.com/artifact/com.itextpdf/itextpdf/5.5.0
根据此页面,itext 5.5 对应的 bouncycastle 版本是 1.49。我在互联网上的某个页面上读到,bouncycastle 正在发生重大变化,并且通常很难找到特定版本的 itext 的相应版本的 bouncycastle。