2

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

严重:将异常映射到响应:500(内部服务器错误)java.lang.SecurityException:类“javax.persistence.PersistenceUtil”的签名者信息与 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) 在 java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) 在 org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2895) 在 org.apache.catalina.loader.WebappClassLoader.findClass( WebappClassLoader.java:1173) 在 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 看起来像:

在此处输入图像描述

4

2 回答 2

3

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

错误:

java.lang.SecurityException:类“javax.persistence.PersistenceUtil”的签名者信息与同一包中其他类的签名者信息不匹配

使固定:

<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 依赖项。请参阅此链接以获取更多详细信息。我希望这会有所帮助

于 2019-06-28T11:54:08.257 回答
0

我通过删除 eclipselink.jar 和 odata4j-core-0.7.0.jar 解决了这个错误

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

在此处输入图像描述

于 2013-06-24T17:32:59.270 回答