首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >iText/BouncyCastle ClassNotFound org.bouncycastle.asn1.DER可编码和org.bouncycastle.tsp.TimeStampTokenInfo

iText/BouncyCastle ClassNotFound org.bouncycastle.asn1.DER可编码和org.bouncycastle.tsp.TimeStampTokenInfo
EN

Stack Overflow用户
提问于 2012-05-01 06:13:31
回答 8查看 79K关注 0票数 22

我正在尝试使用iText Java。当您运行示例"how to sign“时,出现以下错误:

代码语言:javascript
复制
Caused by: java.lang.ClassNotFoundException: org.bouncycastle.tsp.TimeStampTokenInfo

根据"Getting Started with iText - How to sign a PDF using iText"的说法,我必须使用BouncyCastle

我从BouncyCastle download page.下载了这个文件: bcprov-jdk15on-147.jar

并添加到项目中: Java Build Path/Libraries/Add External JARs...

我添加了下面这一行:

代码语言:javascript
复制
Security.addProvider(new BouncyCastleProvider());

当您运行该示例时,同样的错误也会发生。

所以我下载了另一个文件: bcpkix-jdk15on-147.jar,标题是"PKIX/CMS/EAC/PKCS/OCSP/TSP/OPENSSL“

并添加到项目中: Java Build Path/Libraries/Add External JARs...

现在我有两个罐子。

运行该示例时,会出现以下错误:

代码语言:javascript
复制
Caused by: java.lang.ClassNotFoundException: org.bouncycastle.asn1.DEREncodable

我尝试下载文件"bcprov-ext-jdk15on-147.jar“,但没有解决问题。

我在64位的Windows7上使用iText 5.2.1和eclipse。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2012-05-01 06:41:35

BouncyCastle库正在经历重大的API更改,这些更改破坏了与iText等其他库的兼容性。

任一

  • 使用以前版本的BouncyCastle库。旧版本可以在here上找到。但是,您必须找到与此特定版本的BC兼容的正确版本的iText。
  • 构建您自己的iText ( SVN主干已经修复)。可以使用Maven构建iText (在SVN的根目录下有一个简短的readme file )。请注意,这是您自己的风险,可能有bug在主干。
  • 等待iText的下一个版本。根据我的经验,iText每隔几个月发布一次,有时更频繁,有时更少。但我不是iText提交者,所以我不能给你任何预计到达时间。

欲获知更多信息,请访问in this thread

票数 20
EN

Stack Overflow用户

发布于 2013-07-31 21:03:46

iText将bouncycastle依赖项标记为可选。如果您需要它们,您需要在自己的pom文件中添加依赖项。

要找出在您的项目中包含哪个依赖项,请打开您正在使用的版本(例如5.3.2,here)的itextpdf pom.xml文件,并搜索2个bouncycastle依赖项。

代码语言:javascript
复制
    <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文件中,并删除可选选项。

代码语言:javascript
复制
    <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>
票数 30
EN

Stack Overflow用户

发布于 2014-12-20 07:28:49

在itextpdf版本5.5.4中,org.bouncycastle依赖项被标记为<optional>true</optional>。这意味着您必须在自己的pom中包含这些依赖项,否则可能会遇到classnotfound异常。

代码语言:javascript
复制
<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>
票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10391271

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档