首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >iText / BouncyCastle抛出"java.lang.VerifyError: class overrides final method equals“

iText / BouncyCastle抛出"java.lang.VerifyError: class overrides final method equals“
EN

Stack Overflow用户
提问于 2013-06-20 19:27:14
回答 4查看 16.8K关注 0票数 15

我们有一个应用程序可以创建PDF unsing jasperreport。

它还可以在创建PDF后使用iText对其进行操作。

我们最近开始在一些PDF上使用加密。这意味着在应用程序能够处理创建后的PDF之前,必须对其进行解密。在尝试使用iText的PdfReader(String path, byte[] password)执行此操作时,我得到了以下异常:

代码语言:javascript
运行
复制
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

我搞不清楚发生了什么事,需要帮助。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-06-20 20:10:56

我最好的猜测是,您的类路径中有两个不同版本的Bouncy Castle,并且发生这种情况的原因是,类加载器已经从一个版本加载了超类,而现在正在尝试从另一个版本加载子类。这两个版本的不同之处在于其中一个版本定义了一个最终的equals方法。

票数 32
EN

Stack Overflow用户

发布于 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类文件没有找到错误

票数 4
EN

Stack Overflow用户

发布于 2019-05-29 20:19:05

我遇到了类似的问题,因为我的类路径中有两个不同的工件:

代码语言:javascript
运行
复制
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov</artifactId>

代码语言:javascript
运行
复制
 <groupId>org.bouncycastle</groupId>
 <artifactId>bcprov-jdk15on</artifactId>

我已经排除了bcprov,它为我解决了这个问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17212410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档