java.lang.NoClassDefFoundError:org / hibernate / boot / MetadataBuilder

时间:2015-12-01 19:46:58

标签: java hibernate maven spring-mvc jpa

部署我的应用程序时遇到这个奇怪的错误,但需要的jar是在我的POM文件中!!!

<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.0.4.Final</version>
</dependency> 

这里的错误:

 Error creating bean with name 'entityManagerFactory' defined in class path resource [fr/telecom/configuration/HibernateConfiguration.class]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: org/hibernate/boot/MetadataBuilder

我甚至检查战争,罐子在战争中

enter image description here

搜索Ctrl + Shift + T我发现:

org.hibernate.validator.internal.metadata.aggregated.MetaDataBuilder

org.hibernate.boot.MetadataBuilder 

2 个答案:

答案 0 :(得分:1)

您使用的是错误的版本。版本5中提供了org.hibernate.boot.MetadataBuilder

$ jar tvf ~/.m2/repository/org/hibernate/hibernate-core/5.0.4.Final/hibernate-core-5.0.4.Final.jar | grep MetadataBuilder

3931 Wed Nov 18 12:22:14 CET 2015 org/hibernate/boot/MetadataBuilder.class

在版本4.3.6.Final中,它在另一个包中定义:

$ jar tvf ~/.m2/repository/org/hibernate/hibernate-core/4.3.6.Final/hibernate-core-4.3.6.Final.jar | grep MetadataBuilder

672 Wed Jul 16 16:28:14 CEST 2014 org/hibernate/metamodel/MetadataBuilder.class

答案 1 :(得分:0)

1)hibernate.config.xml中的DTD头部必须如下:

`<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration SYSTEM 
"classpath:/org/hibernate/hibernate-configuration-3.0.dtd">

`

2)如果你有/ WEB-INF中的hibernate.config.xml将其删除并放在/ src / main / resources中;

3)最后,你必须在web.xml文件中写一些行,你可以在其中调用hibernate,如下所示:

`<context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>   
        classpath:hibernate.cfg.xml                     
        </param-value>
    </context-param>`

我希望它能够停止。赫尔曼,莫桑比克