Cob*_*aia 20 java cryptography bouncycastle exception itext
我正在尝试使用iText Java.当您运行示例" 如何签名 "时,会发生以下错误:
Caused by: java.lang.ClassNotFoundException: org.bouncycastle.tsp.TimeStampTokenInfo
Run Code Online (Sandbox Code Playgroud)
根据"iText入门 - 如何使用iText签名PDF",我必须使用BouncyCastle.
我从BouncyCastle下载页面 下载了文件:bcprov-jdk15on-147.jar .
并添加到项目中:Java Build Path/Libraries/Add External JARs ...
我添加了以下行:
Security.addProvider(new BouncyCastleProvider());
Run Code Online (Sandbox Code Playgroud)
运行该示例时,会发生相同的错误.
所以我下载了另一个文件:bcpkix-jdk15on-147.jar,标题为"PKIX/CMS/EAC/PKCS/OCSP/TSP/OPENSSL"
并添加到项目中:Java Build Path/Libraries/Add External JARs ...
现在我有了两个罐子.
运行该示例时,会发生以下错误:
Caused by: java.lang.ClassNotFoundException: org.bouncycastle.asn1.DEREncodable
Run Code Online (Sandbox Code Playgroud)
我尝试下载文件"bcprov-ext-jdk15on-147.jar",但没有解决问题.
我在Windows 7 64位上使用iText 5.2.1和eclipse.
jeh*_*hon 27
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>
Run Code Online (Sandbox Code Playgroud)
将它们复制到您的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>
Run Code Online (Sandbox Code Playgroud)
Ale*_*eon 19
BouncyCastle库正在进行大量的API更改,这破坏了与iText等其他库的兼容性.
或
使用以前版本的BouncyCastle库.旧版本可以在这里找到.但是,您必须找到与此特定版本的BC兼容的正确版本的iText.
制作自己的iText版本(已修复SVN中继).iText可以用Maven构建(在SVN的根目录下有一个简短的自述文件).请注意,自行承担风险,主干可能存在漏洞.
等待iText的下一个版本.根据我的经验,iText发布每隔几个月发布一次,有时更频繁,有时更少.我不是iText提交者,所以我不能给你任何ETA.
可以在此主题中找到更多信息
Cor*_*han 14
使用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>
Run Code Online (Sandbox Code Playgroud)
小智 5
从 bcprov-jdk15on-147 版本开始,在 org.bouncycastle.asn1 路径下不再存在 DEREncodable 类。您可以使用146(包括146)之前的版本来解决此问题。
归档时间: |
|
查看次数: |
68733 次 |
最近记录: |