【问题标题】:java.lang.NoClassDefFoundError: org/bouncycastle/asn1/ASN1Encodablejava.lang.NoClassDefFoundError: org/bouncycastle/asn1/ASN1Encodable
【发布时间】:2014-04-26 03:51:03
【问题描述】:

我使用 iText 5.5.0 和 BouncyCastle bcprov-jdk15on-1.50 对 pdf 进行数字签名。如果我在 MakeSignature.signDetached 方法中不包含时间戳,一切正常。

当我使用 TSAClient 指定 TSAURL 时,我的代码给了我错误

java.lang.NoClassDefFoundError: org/bouncycastle/asn1/ASN1Encodable at MakeSignature.signDetached method

即使我处理了异常,我的程序也会终止。

我尝试了不同版本的 bouncycastle jar,但我得到了相同的错误,但未找到的类不同。

我真的需要在签名中包含时间戳。我该怎么办。

【问题讨论】:

  • jdk15on 是什么,你是如何包含 jar 的? Maven iText 构建包括具有您提到的类的工件,它也出现在我在 Central 上看到的所有 BC 版本中。
  • bcprov-jdk15on-1.50.jar 是我在互联网上找到的最新版本的 BouncyCastle。我在 Eclipse 中使用“添加外部 jars”将 jar 包含在我的项目中。是的,ASN1Encodable 类确实列在所有 BC 版本中,但在最新版本中,它是作为接口而不是类。我不确定这是否会导致问题。
  • 请先试用maven依赖中提到的版本(目前为1.49)。众所周知,Bouncy Castle 会在看似很小的版本更改中进行基本的 API 更改。

标签: java exception timestamp itext bouncycastle


【解决方案1】:

您可以在以下网址查看 itext 5.5 的依赖关系。

http://mvnrepository.com/artifact/com.itextpdf/itextpdf/5.5.0

根据此页面,itext 5.5 对应的 bouncycastle 版本为 1.49。我在互联网某处的某个页面上读到 bouncycastle 正在发生重大变化,并且通常很难为特定版本的 itext 找到相应版本的 bouncycastle。

【讨论】:

    【解决方案2】:

    请从下面给出的链接下载 bcprov-jdk15on-150.jar(适用于 JDK 1.5 - 1.7)文件并添加到您的项目中以解决 java.lang.NoClassDefFoundError: org/ bouncycastle/asn1/ASN1Encodable异常。

    http://www.bouncycastle.org/latest_releases.html

    根据你的JDK版本,从上面的链接中找到合适的jar文件。

    【讨论】:

    • 对于 iText 5.5.x,我们只推荐使用 BouncyCastle 1.49,这是我们唯一使用的版本。众所周知,BouncyCastle 不尊重语义版本控制,并且在较小的版本更改中进行不兼容的 API 更改,正如 @mkl 上面所写。这就是我投反对票的原因(披露:我是 QA Engineer @ iText Software)。
    【解决方案3】:

    在项目中包含 iText 的推荐方法是使用 Maven。然后,Maven 将为您解决依赖关系。我读到你使用 Eclipse,Eclipse 有一个非常好的 Maven 插件。

    把这个放在你的pom.xml:

    <dependency>
      <groupId>com.itextpdf</groupId>
      <artifactId>itextpdf</artifactId>
      <version>5.5.8</version>
    </dependency> 
    

    更多信息请访问http://developers.itextpdf.com/itext-java

    【讨论】:

      猜你喜欢
      • 2016-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-28
      • 1970-01-01
      • 1970-01-01
      • 2018-05-04
      • 1970-01-01
      相关资源
      最近更新 更多