【问题标题】:Unit Tests with SpringJUnit4ClassRunner fails loading context with PersistenceUnitInfo.getValidationMode()使用 SpringJUnit4ClassRunner 进行单元测试无法使用 PersistenceUnitInfo.getValidationMode() 加载上下文
【发布时间】:2013-09-02 16:37:07
【问题描述】:

我正在尝试使用 Spring 编写一些单元(集成)测试。我正在使用 SpringJUnit4ClassRunner。我之前在我的域层中使用这个运行器编写了测试,没有问题。现在我正在尝试在我的 Web 应用程序中编写测试并得到“无法加载 ApplicationContext”异常。

该应用程序基于 Hibernate / JPA 2.0。这是主要的例外:

引起:java.lang.NoSuchMethodError: javax.persistence.spi.PersistenceUnitInfo.getValidationMode()Ljavax/persistence/ValidationMode; 在 org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:641) 在 org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:91) 在 org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:288) 在 org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:310) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1547) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)

【问题讨论】:

  • 你能发布你的类路径吗?从堆栈跟踪来看,您的类路径中混合了 JPA 版本。
  • 我的主应用程序运行没有问题,并且它使用相同的 pom 文件。我应该寻找哪些罐子?我正在使用 Maven,所以我无法发布类路径。

标签: spring hibernate jpa junit


【解决方案1】:

感谢 M. Deinum 的提示。我查看了我的 pom 文件并注意到 Spring Skyway Software Utils 引入了 JPA1。删除 Skyway 实用程序后,我的单元测试就开始工作了。

【讨论】:

    猜你喜欢
    • 2016-10-31
    • 2018-11-14
    • 2016-02-27
    • 2015-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-21
    • 2020-09-30
    相关资源
    最近更新 更多