【问题标题】:Spring MVC 4.2.2 and Hibernate 5.0.2 giving errorSpring MVC 4.2.2 和 Hibernate 5.0.2 给出错误
【发布时间】:2016-02-13 13:30:49
【问题描述】:

以下是 pom.xml 上的依赖版本详细信息

<!-- spring --> 
<org.springframework-version>4.2.2.RELEASE</org.springframework-version>
<org.springframework.data-version>1.11.0.RELEASE</org.springframework.data-version>

<!-- hibernate --> 
<org.hibernate.hibernate-core>5.0.2.Final</org.hibernate.hibernate-core> 
<org.hibernate.hibernate-annotations>3.5.6-Final</org.hibernate.hibernate-annotations> 
<org.hibernate.hibernate-commons-annotations>3.2.0.Final</org.hibernate.hibernate-commons-annotations> 
<org.hibernate.hibernate-validator>5.2.2.Final</org.hibernate.hibernate-validator>

我从“spring-orm”pom 中挑选了 Hibernate 版本详细信息,发现 Hibernate 5.0.2 与 Spring 4.2.2 兼容

Spring 核心Hibernate 的情况下具有相同的依赖关系,它可以正常工作并提供所需的结果。 但是通过 Spring MVCHibernate 集成,它给出了以下错误

init 方法调用失败;嵌套异常是 java.lang.NoSuchMethodError: org.hibernate.cfg.annotations.reflection.JPAMetadataProvider.(Lorg/hibernate/boot/spi/MetadataBuildingOptions;)V

如果需要任何进一步的信息,请在评论部分提出。我将提供整个配置细节。

提前致谢。 :-)

【问题讨论】:

  • 尝试从你的 jars mvn dependency:tree -Dverbose -Dincludes=commons-collections, maven.apache.org/plugins/maven-dependency-plugin/examples/… 的 maven 获取依赖树,可能会看到冲突
  • 您的屏幕截图显示您的依赖关系树中同时拥有 Hibernate core 5 和 3.5.6。这可能是你问题的根源
  • 是的...已经弄清楚并发布在答案部分。 @pezetem 和 Bohuslav,感谢您的投入
  • 我建议你看看Spring IO。它通过提供一个精选的依赖版本列表来减轻手动选择正确依赖版本的痛苦

标签: java spring hibernate spring-mvc spring-orm


【解决方案1】:

从 pom.xml 中删除以下依赖项已解决问题。

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-annotations</artifactId>
    <version>3.5.6-Final</version>
</dependency>
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-commons-annotations</artifactId>
    <version>3.2.0.Final</version>
</dependency>

由于这种依赖关系,已解决的依赖关系存在冲突。(请参阅问题所附的图片)。

hibernate-annotations 不是必需的,它依赖于旧版本的 hibernate-corehibernate-commons-annotations

hibernate-commons-annotations(版本 5.0.2)作为依赖 jar 存在于 hibernate-core 中。所以不需要在 pom.xml 中提及旧版本

【讨论】:

    猜你喜欢
    • 2015-03-10
    • 2016-06-13
    • 1970-01-01
    • 1970-01-01
    • 2017-06-18
    • 1970-01-01
    • 2011-07-23
    • 1970-01-01
    相关资源
    最近更新 更多