我试图使用的iText的Java。 当你运行示例“ 如何签 ”出现以下错误:
Caused by: java.lang.ClassNotFoundException: org.bouncycastle.tsp.TimeStampTokenInfo
据“入门与iText的教程-如何注册使用iText的PDF文件” ,我不得不使用BouncyCastle的 。
我下载的文件:bcprov-jdk15on-147.jar从BouncyCastle的下载页面。
并添加到项目:Java构建路径/库/添加外部JAR ...
我添加了以下行:
Security.addProvider(new BouncyCastleProvider());
当您运行的例子发生同样的错误。
所以,我下载了另一个文件:题为 “PKIX / CMS / EAC / PKCS / OCSP / TSP / OPENSSL” bcpkix-jdk15on-147.jar
并添加到项目:Java构建路径/库/添加外部JAR ...
现在我有两个罐子。
当你运行例子出现以下错误:
Caused by: java.lang.ClassNotFoundException: org.bouncycastle.asn1.DEREncodable
我尝试下载文件“bcprov-EXT-jdk15on-147.jar”,但没有解决问题。
我使用的iText 5.2.1和eclipse在Windows 7 64位。
BouncyCastle的库正在经历,打破与其他库像iText的兼容性重API的变化。
或
使用BouncyCastle的库的早期版本。 旧版本可以发现在这里 。 但是,你必须找到iText的版本是正确的,这是与BC的这个特殊版本兼容。
使自己的iText的版本(SVN主干已定)。 iText的可以使用Maven构建可(有一个短的自述文件在SVN根)。 请注意,这是您自己的风险,有可能是在后备箱的错误。
等待iText的下一个版本。 从我的经验,iText的版本来每隔几个月,有时次数多,有时少。 我不是一个iText的提交者,虽然,所以我不能给你任何ETA。
更多信息,可以发现在这个线程
iText的标志BouncyCastle的依赖关系为可选。 如果你需要它们,你需要添加依赖于你自己的POM文件。
要找出哪些依赖在您的项目包括,打开您正在使用的版本itextpdf pom.xml文件(例如5.3.2, 在这里 ),并搜索2个BouncyCastle的依赖关系。
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.47</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcmail-jdk15on</artifactId>
<version>1.47</version>
<optional>true</optional>
</dependency>
将它们复制到您的POM文件,并删除可选的选项。
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.3.2</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.47</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcmail-jdk15on</artifactId>
<version>1.47</version>
</dependency>
与itextpdf版本5.5.4 org.bouncycastle依赖性被标记为<optional>true</optional>
。 这意味着你必须在你自己的POM这些依赖关系,或者你可以运行到ClassNotFound的异常。
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.4</version>
</dependency>
<!-- Bouncycastle dependencies necessary as they are optional = true
in itextpdf ... but they're not-so-optional in reality -->
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.49</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcpkix-jdk15on</artifactId>
<version>1.49</version>
</dependency>
从bcprov-jdk15on-147的版本,类DEREncodable的不再org.bouncycastle.asn1的路径下存在。 您可以使用146版本之前(含146)来解决这个问题。
这是奇怪的是,可在bouncycastle.org的罐子似乎并不包含此类。 也许,你可能需要使用一个从列出的位置此页面(链接) 。
我有同样的问题,但解决它当我下载的书店和更新/ WEB-INF / LIB这些文件
幸运的是,依赖罐子正在与iText的一起交付现在。
请检查下面的资料库链接并下载文件extrajars.zip
http://sourceforge.net/projects/itext/files/
对于JRuby的ERS使用相同的故障,我从JRuby的完整-1.6.6.jar更新到JRuby的完整-9.1.13.0.jar和问题似乎解决... ... FWIW
文章来源: iText/BouncyCastle ClassNotFound org.bouncycastle.asn1.DEREncodable and org.bouncycastle.tsp.TimeStampTokenInfo