Hibernate:Class not found错误(java.lang.NoClassDefFoundError),虽然在Maven中添加了依赖项

时间:2017-05-24 07:45:03

标签: java spring eclipse hibernate maven

我正在尝试使用Maven创建一个简单的Web应用程序。在运行时,servlet会抛出一个异常,说java.lang.NoClassDefFoundError:org / hibernate / cfg / Configuration Error

根据堆栈跟踪,在创建会话工厂的行(18)处抛出错误 - enter image description here

错误说它无法找到Hibernate配置文件,尽管在Maven下添加了依赖项。 pom.xml文件如下 - (注意依赖hibernate-core v5.2.10.Final)

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.webapp</groupId>
  <artifactId>userinfo</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>userinfo</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.hibernate</groupId>
      <artifactId>hibernate-core</artifactId>
      <version>5.2.10.Final</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate.javax.persistence</groupId>
        <artifactId>hibernate-jpa-2.1-api</artifactId>
        <version>1.0.0.Final</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-validator</artifactId>
        <version>5.4.1.Final</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-annotations -->
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-annotations</artifactId>
        <version>3.5.6-Final</version>
    </dependency>
        <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-ehcache -->
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-ehcache</artifactId>
        <version>4.3.11.Final</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-c3p0 
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-c3p0</artifactId>
        <version>4.3.11.Final</version>
    </dependency> -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-tools 
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-tools</artifactId>
        <version>5.2.0.Final</version>
    </dependency> -->

  </dependencies>
</project>

我交叉检查,jar也被添加到&#34; Maven Dependency&#34; tab并包含/cfg/configuration.class。

我不明白问题是什么。请建议我如何摆脱错误。

我已经尝试了一些但它们都没有奏效的事情:

  • 将依赖项更改为compile。
  • 更新(并清理)Maven项目
  • 清理并重新启动Tomcat服务器
  • 论坛上的答案表明使用的Hibernate版本之间可能存在冲突。这就是&#34; hibernate-tools&#34;依赖被评论。

任何帮助将不胜感激。感谢

2 个答案:

答案 0 :(得分:1)

您的hibernate工具已被评论

尝试添加此

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-tools</artifactId>
    <version>3.2.0.ga</version>
</dependency>

答案 1 :(得分:0)

尝试以下过程:

  1. 清理项目。
  2. 更新项目。
  3. 从.m2存储库中删除/ org / hibernate /目录。
  4. 构建项目。
  5. 部署构建。