使用Hibernate时NoClassDefFoundError

时间:2018-04-02 08:50:26

标签: java hibernate exception classloader

我在为Hibernate for Eclipse的初始设置遇到一个问题时苦苦挣扎了几个小时。更确切地说,我收到了这个错误,我在任何地方都找到了解决方案。如果有人能帮我这个,我会很感激的!

Exception in thread "main" java.lang.NoClassDefFoundError: org/hibernate/cfg/Configuration
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at com.hibernate.test.Main.main(Main.java:16)
Caused by: java.lang.ClassNotFoundException: org.hibernate.cfg.Configuration
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)

3 个答案:

答案 0 :(得分:0)

你的maven依赖有问题。如果您使用的是休眠注释,则应添加hibernate-annotations jar

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

如果您正在使用maven,那么在hibernate jar版本中存在一些差异,

请从maven目录中清除所有罐子,然后再让maven下载罐子。

我希望这能解决你的问题。