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

时间:2012-03-24 11:56:28

标签: java eclipse hibernate

我正在尝试使用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)

我已经在线解决了我的问题,我知道它与项目类路径有关。

我在我的项目中添加了一个用户库,其中包含hibernate下载中“required”目录下的所有jar文件,但这似乎不起作用。

请找到我的项目here:

的屏幕截图

4 个答案:

答案 0 :(得分:24)

您收到错误是因为Tomcat无法使用hibernate库。在你的图片中,在hibernate库集下面有一个名为“Web App Libraries”的空集 - 这是你的hibernate库需要的集合。

右键单击您的项目 - &gt;构建路径 - &gt;配置Build Path,并从构建路径中删除hibernate集。现在将jar导入WEB-INF / lib文件夹。刷新你的项目,现在你应该看到它们列在'Web App Libraries'集中(我很感激你有点讨厌,你必须将它们导入你的代码库 - 其他人可能知道一个更好的方法来做到这一点不涉及复制罐子)

答案 1 :(得分:18)

当您的jar文件未与您的网络存档导出时,可能会发生此错误。您可以执行@Chris White所说的内容,或者如果您使用Eclipse,则可以按照以下步骤操作。

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

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

答案 2 :(得分:3)

比克里斯怀特更简单的方式。

  

您收到错误是因为Tomcat无法使用hibernate库。右键单击您的项目 - &gt;构建路径 - &gt;配置构建路径,并从构建路径删除 hibernate集。

执行相同的操作,但不是每次为新项目导入jar,**复制Apache Tomcat的lib文件夹中所需的hibernate jar(或者您使用的任何服务器)。

答案 3 :(得分:2)

您的库文件夹中没有hibernate jar 请访问以下链接,了解可能的解决方案http://www.smashplus.info/2012/11/javalangnoclassdeffounderror.html