我正在开发一个水印 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 。
我尝试了什么:
但行为完全相同,有些PDF 有效(总是),有些不(以往)。
使用 iText 库,您是否遇到过与此类似的问题?
问题 PDF 文件会导致代码崩溃而不是我的项目
我完全被困在这里所以任何帮助/小费都会受到赞赏。提前谢谢。
答案 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 ,错误已消失。
使用STS我无法删除它,所以我在文件系统上找到了它,并从Pivotal TC预期的文件夹中移出。然后,lib在STS消失了。
我还没有删除它以防万一,只是移动到另一个目录。如果我从现在开始对Pivotal TC有问题,我会更新我的答案。