我们有一个应用程序可以创建PDF unsing jasperreport。
它还可以在创建PDF后使用iText对其进行操作。
我们最近开始在一些PDF上使用加密。这意味着在应用程序能够处理创建后的PDF之前,必须对其进行解密。在尝试使用iText的PdfReader(String path, byte[] password)执行此操作时,我得到了以下异常:
java.lang.VerifyError: class org.bouncycastle.asn1.ASN1Primitive overrides final method equals.(Ljava/lang/Object;)Z
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at com.simontuffs.onejar.JarClassLoader.defineClass(JarClassLoader.java:561)
at com.simontuffs.onejar.JarClassLoader.findClass(JarClassLoader.java:475)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at com.itextpdf.text.pdf.PdfEncryption.<init>(PdfEncryption.java:148)
at com.itextpdf.text.pdf.PdfReader.readDecryptedDocObj(PdfReader.java:914)
at com.itextpdf.text.pdf.PdfReader.readDocObj(PdfReader.java:1294)
at com.itextpdf.text.pdf.PdfReader.readPdf(PdfReader.java:643)
at com.itextpdf.text.pdf.PdfReader.<init>(PdfReader.java:187)
at com.itextpdf.text.pdf.PdfReader.<init>(PdfReader.java:212)
at com.itextpdf.text.pdf.PdfReader.<init>(PdfReader.java:202)该项目使用Maven构建为可运行的.jar,并使用以下依赖项:
iText 5.4.2
bouncycastle 1.48
值得一提的是,jasperreports有自己对iText和bouncycastle的依赖:
iText 2.1.7
bouncycastle 1.38
我搞不清楚发生了什么事,需要帮助。
发布于 2013-06-20 20:10:56
我最好的猜测是,您的类路径中有两个不同版本的Bouncy Castle,并且发生这种情况的原因是,类加载器已经从一个版本加载了超类,而现在正在尝试从另一个版本加载子类。这两个版本的不同之处在于其中一个版本定义了一个最终的equals方法。
发布于 2016-10-19 16:02:52
如果有同样的错误,我的解决方案可能会派上用场。在我的例子中,我所做的就是对pdf文档进行数字签名,使用Maven,我的pom.xml中既有IText(itextpdf.jar/version5.4.2)和Bouncycastle(bcprov-jdk15on.jar/version1.55)的依赖。我删除了bouncycastle (bcprov-jdk15on.jar/version1.55)依赖项,错误也就消失了(新手错误--bouncycastle依赖项已经是iText依赖项的一部分了,不需要将两者分开)。
注意:如果你在删除Bouncycastle依赖check this后遇到任何bouncycastle类文件没有找到错误
发布于 2019-05-29 20:19:05
我遇到了类似的问题,因为我的类路径中有两个不同的工件:
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov</artifactId>和
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>我已经排除了bcprov,它为我解决了这个问题。
https://stackoverflow.com/questions/17212410
复制相似问题