PersistenceUtil签名者信息在单元测试中不匹配

时间:2018-01-21 13:12:18

标签: java jpa junit eclipselink

尝试运行单元测试时出现以下错误。 当我在tomcat下运行应用程序时不会发生错误(但奇怪的是,当我从snapcraft安装的snap中运行tomcat时,它不会给出相同的错误。)

初始会话工厂创建失败: java.lang.SecurityException:类“javax.persistence.PersistenceUtil”的签名者信息与同一包中其他类的签名者信息不匹配

单元测试和tomcat war使用相同的方法初始化jpa:

private static EntityManagerFactory emf = null;

public static void init(String persistenceUnitName)
{
    try
    {
        if (emf == null)
            emf = Persistence.createEntityManagerFactory(persistenceUnitName);
        else
        {
            logger.error("Someone is trying to initialise EntityManagerUtil a second time." 
                    + Arrays.toString(Thread.currentThread().getStackTrace()));
        }

    }
    catch (Throwable e)
    {
        logger.error("Initial Session factory creation failed: " + e);
        throw e;
    }
}

通过我的pom导入了两个版本的javax.persistence.PersistenceUtil类。

直接在jar中找到一个: 的EclipseLink-2.7.1.jar

另一个在罐子里: javax.persistence-2.2.0.jar

第二个jar javax.persistence是eclipselink-2.7.1.jar的依赖。

如果我排除了javax.persistence jar,那么该项目将无法编译。

0 个答案:

没有答案