' class" org.bouncycastle.asn1.ASN1Primitive"的签名者信息与同一包中其他类的签名者信息不匹配'使用Itext

时间:2017-04-04 17:21:54

标签: java spring maven pdf itext

我正在开发一个水印 PDF 的小工具,适用于某些 PDF,适用于某些其他人。

我使用 iText 库和bouncycastle(依赖)

的pom.xml:

    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>itextpdf</artifactId>
        <version>5.5.6</version>
    </dependency>
    <dependency>
        <groupId>org.bouncycastle</groupId>
        <artifactId>bcprov-jdk15on</artifactId>
        <version>1.49</version>
    </dependency>

此行崩溃(第一行代码):

PdfReader reader = new PdfReader(src);

使用以下 stacktrace

Exception in thread "main" com.itextpdf.text.exceptions.InvalidPdfException: class "org.bouncycastle.asn1.ASN1Primitive"'s signer information does not match signer information of other classes in the same package
at com.itextpdf.text.pdf.PdfReader.readPdf(PdfReader.java:727)
at com.itextpdf.text.pdf.PdfReader.<init>(PdfReader.java:181)
at com.itextpdf.text.pdf.PdfReader.<init>(PdfReader.java:219)
at com.itextpdf.text.pdf.PdfReader.<init>(PdfReader.java:207)
at com.itextpdf.text.pdf.PdfReader.<init>(PdfReader.java:197)
... <from here it points to my code>

我做了一些谷歌搜索,有些人说问题可能是我在某处 bouncycastle lib重复

这是使用 Maven 构建的 Spring 应用程序内部。那么,这真的是一个图书馆问题吗?

我使用 JDK 1.8

我尝试了什么

  • 与Maven不同的bouncycastle版本。
  • 手动添加不同的bouncycastle版本(支持我的JDK版本)(包括iText)。

但行为完全相同,有些PDF 有效总是),有些以往)。

使用 iText 库,您是否遇到过与此类似的问题?

问题 PDF 文件会导致代码崩溃而不是我的项目

我完全被困在这里所以任何帮助/小费都会受到赞赏。提前谢谢。

1 个答案:

答案 0 :(得分:2)

感谢 Bruno Lowagie 评论及相关问题和 mkl 提示我发现了问题。

构建路径中,是两个org.bouncycastle库,一个通过Maven添加bcprov-jdk15on.jar)和< strong> Pivotal TC Server使用的另一个(com.springsource.org.bouncycastle.jce-1.46.0.jar)。

我已删除 Pivotal TC服务器 bouncycastle jar 错误已消失

Pivotal bouncycastle jar was there

使用STS我无法删除它,所以我在文件系统上找到了它,并从Pivotal TC预期的文件夹中移出。然后,lib在STS消失了。

我还没有删除它以防万一,只是移动到另一个目录。如果我从现在开始对Pivotal TC有问题,我会更新我的答案。