java - Hibernate : Class not found error (java. lang.NoClassDefFoundError),尽管在 Maven 中添加了依赖项

标签 java spring eclipse hibernate maven

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

根据堆栈跟踪,错误在创建 session 工厂的第 (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 也添加到“Maven 依赖项”选项卡中并包含/cfg/configuration.class。

我不明白问题出在哪里。请建议我如何消除该错误。

一些我已经尝试过但都不起作用的事情:

  • 更改了编译依赖项。
  • 更新(并清理)了 Maven 项目
  • 清理并重新启动 Tomcat 服务器
  • 论坛上的一个回答表明所使用的 Hibernate 版本之间可能存在冲突。这就是为什么“hibernate-tools”依赖项被注释的原因。

如有任何帮助,我们将不胜感激。谢谢

最佳答案

您的 hibernate 工具已被评论

尝试添加这个

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

关于java - Hibernate : Class not found error (java. lang.NoClassDefFoundError),尽管在 Maven 中添加了依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44152078/

相关文章:

java - TCP 服务器以数据包结构发送文件(到非 Java 客户端)

java - 无法读取架构文档 'http://www.springframework.org/schema/tool/spring-tool-4.1.xsd'

java - lambda 中的 Spring Request 作用域 bean

java - 抑制 Eclipse 中缺少 @Override 注释的警告

c++ - 如何在没有 QtCreator 的情况下编译 Qt 5 项目?

java - 在 Java 中将 SHGetFileInfo 与 JNA 结合使用

java - 关于Spark的持久化机制

java - 了解复杂java项目中运行的方法和类

java - 如何在 ConstraintLayout 类中使用 android 扩展 XML 布局?

java - 创建文件 [] : Unsatisfied dependency expressed through constructor parameter 1 中定义的名称为 'fieldServiceImpl' 的 bean 时出错