我正在開發一個小工具,水印PDF文件,它工程一些 PDF和崩潰的一些其他人。「類‘org.bouncycastle.asn1.ASN1Primitive’的簽名信息並不在同一個包匹配其他類的簽名者信息」利用iText
我使用的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>
我做了一些google搜索和有些人說,可能的問題是,我有這個BouncyCastle的LIB複製地方。
這是在春天應用程序構建與Maven。那麼,這可能是一個圖書館問題嗎?
我正在使用JDK 1.8。
我已經試過:
- 不同BouncyCastle的版本使用Maven。
- 不同的bouncycastle版本(支持我的JDK版本)手動添加到項目(包括iText)中。
但行爲是完全一樣的,有的PDF (總是)的作品和其他一些不(曾經)。
您是否曾經遇到類似於此問題的任何問題?使用iText庫?
是在問題在的PDF文件是讓代碼崩潰在我的項目,而不是?
我完全卡在這裏所以任何幫助/提示將不勝感激。提前致謝。
始終有效的PDF是那些不以任何方式使用加密的PDF。那些不起作用的,他們需要BouncyCastle。該錯誤並未說明BouncyCastle丟失,但是您使用的是使用一個密鑰簽名的jar,以及其他未簽名(最有可能導致)或使用另一個密鑰簽名的jar。參見http://stackoverflow.com/questions/2877262/java-securityexception-signer-information-does-not-match –
有時候庫類會被添加到其他工件中。因此,可能重複的bc軟件包在某個jar中,你不會懷疑它會進入。 – mkl
感謝您的幫助。當我在這兩個方向中的任何一個前進時,我會進一步調查和更新。謝謝mkl和布魯諾。 –