java.lang.NoClassDefFoundError: org/hibernate/cfg/Configuration

2022-09-04 23:57:26

我正在尝试在Eclipse中使用Hibernate进行初始设置,同时使用Tomcat进行部署。

我遇到了以下问题:

java.lang.ClassNotFoundException: org.hibernate.cfg.Configuration
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1701)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1546)
    db.HibernateUtil.buildSessionFactory(HibernateUtil.java:13)
    db.HibernateUtil.<clinit>(HibernateUtil.java:8)

我已经在网上搜索了我的问题,我知道它与项目类路径有关。

我已经向我的项目添加了一个用户库,其中包含休眠下载中“必需”目录下的所有jar,但这似乎不起作用。

请在这里找到我的项目的屏幕截图


答案 1

您收到错误是因为休眠库对Tomcat不可用。在您的图片中,在休眠库集下方有一个名为“Web App 库”的空集 - 这是休眠库需要所在的集。

右键单击项目 ->生成路径 ->配置生成路径,然后从生成路径中删除休眠集。现在将 jar 导入 WEB-INF/lib 文件夹。刷新你的项目,现在你应该看到它们列在“Web App库”集中(我很欣赏这有点烦人,你必须将它们导入到你的代码库中 - 其他人可能知道更好的方法来做到这一点,不涉及复制jars)


答案 2

当您的 jar 文件尚未随 Web 存档一起导出时,可能会发生此错误。你可以按照@Chris White所说的去做,或者如果你正在使用Eclipse,你可以按照以下步骤操作。

Right click the project -> Build Path -> Configure Build Path

在左侧的列表中,单击“部署程序集”。点击“添加”按钮。选择“Java 构建路径条目”,然后单击下一步。现在选择休眠 jar 文件或库。单击“完成”。然后单击“确定”。
如有必要,请重新启动服务器。


推荐