我正在尝试使用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:
的屏幕截图答案 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