java - 错误: class "javax.persistence.PersistenceUtil"'s signer information does not match

标签 java eclipse tomcat persistence securityexception

当尝试使用 Tomcat Apache 运行我的程序时,出现以下错误:

SEVERE: Mapped exception to response: 500 (Internal Server Error) java.lang.SecurityException: class "javax.persistence.PersistenceUtil"'s signer information does not match signer information of other classes in the same package at java.lang.ClassLoader.checkCerts(ClassLoader.java:806) at java.lang.ClassLoader.preDefineClass(ClassLoader.java:487) at java.lang.ClassLoader.defineClassCond(ClassLoader.java:625) at java.lang.ClassLoader.defineClass(ClassLoader.java:615) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2895) at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1173) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1681) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559) at org.odata4j.producer.jpa.JPAProducerFactory.create(JPAProducerFactory.java:32) at ......

之前我收到了“java.lang.NoClassDefFoundError: javax/persistence/Persistence”错误,因此我将 javax.persistence_2.0.5.v201212031355.jar 添加到 WEB-INF/lib 中。

我的 WEB-INF/lib 看起来像:

enter image description here

最佳答案

我使用的是 eclipselink 版本 2.7.4,并且遇到了相同的错误,为了修复它,我从 eclipselink 依赖项中排除了 javax.persistence 和 jakarta.persistence。

错误:

java.lang.SecurityException: class "javax.persistence.PersistenceUtil"'s signer information does not match signer information of other classes in the same package

修复:

<dependency>
    <groupId>org.eclipse.persistence</groupId>
    <artifactId>eclipselink</artifactId>
    <version>2.7.4</version>
    <exclusions>
        <exclusion>
            <groupId>org.eclipse.persistence</groupId>
            <artifactId>javax.persistence</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.eclipse.persistence</groupId>
            <artifactId>jakarta.persistence</artifactId>
        </exclusion>
    </exclusions>
</dependency>

这会引入 eclipselink 但排除 javax.persistence 依赖项。 请引用this link了解更多详细信息。 我希望这会有所帮助

关于java - 错误: class "javax.persistence.PersistenceUtil"'s signer information does not match,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17281492/

相关文章:

java - 写输出 : Too many methods: 77742; max is 65536. 的麻烦按包:

spring - 启动/停止 Tomcat 6.0.29 时出错

Tomcat 在数据库重启时不重新连接 PostgreSQL JDBC 池

java - 为什么 Java 中的 RSA 加密生成的密文长度与 C# 不同

java - Jar 文件给出 java.lang.NoClassDefFoundError

java - 如何让 install4j 签署 Mac 启动器应用程序?

java - intellij idea - 无法在 linux 上运行 "Tomcat"项目

java - Gradle构建错误Error converting bytecode to dex :Cause: com. android.dex.DexException:Multiple dex files define Landroid/arch/lifecycle/liveData$1

java - 在 Eclipse 中从 SVN 服务器 checkout GWT 项目?

javascript - 在eclipse中导入一个javascript项目