【问题标题】:NoSuchMethodError - org.hibernate.cfg.Environment [duplicate]NoSuchMethodError - org.hibernate.cfg.Environment [重复]
【发布时间】:2016-11-17 20:51:23
【问题描述】:

我遇到了休眠问题。问题:在 ServletContext 资源 [/WEB-INF/spring/appServlet/servlet-context.xml] 中定义名称为“emf”的 bean 创建错误:调用 init 方法失败;嵌套异常是 java.lang.NoSuchMethodError: org.hibernate.cfg.Environment.verifyProperties(Ljava/util/Map;)V

它是xml文件(servlet-context):http://pastebin.com/BRYvbVTg

而且,我只有一个来自 hibernate 的依赖项:

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-entitymanager</artifactId>
    <version>5.2.4.Final</version>
</dependency>

在classpath下,尝试添加所有包,效果一样

完整的堆栈跟踪:http://pastebin.com/wJy7QfPW

【问题讨论】:

  • 最好添加完整的堆栈跟踪。
  • 看到这个答案stackoverflow.com/questions/11553202/…,看起来像是类路径上的一些旧版本的休眠
  • 如何从 Maven (Linux) 中删除本地库?

标签: java spring hibernate servlets


【解决方案1】:
  1. 正如@v.ladynev 提到的,提供完整的堆栈跟踪。
  2. 要删除本地库,找到并导航到您的 .m2 文件夹 /repository/org 并删除休眠文件夹
  3. 考虑将 entityManagerFactory 定义为

<property name="dataSource" ref="dataSource" />       
<property name="jpaVendorAdapter">
    <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />
</property>
<property name="jpaProperties">
    <props>
        <prop key="hibernate.hbm2ddl.auto">update</prop>
        <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>         
        <prop key="hibernate.connection.charSet">UTF-8</prop>
        <prop key="hibernate.show_sql">true</prop>
    </props>
</property>
<property name="packagesToScan" value="ru.mrchebik.model"/>

我希望这会有所帮助!

【讨论】:

  • 这并不能解决我的问题。
猜你喜欢
  • 2021-09-08
  • 2013-12-30
  • 2012-08-12
  • 2016-09-21
  • 2011-06-12
  • 1970-01-01
  • 1970-01-01
  • 2016-05-12
  • 2020-09-29
相关资源
最近更新 更多