Hibernate java.lang.NoClassDefFoundError

时间:2011-04-14 14:00:03

标签: java hibernate exception web-applications

我正在运行一个带有hibernate的Web应用程序,并且遇到了这个异常。

    ... 34 more
18:50:02,573 WARN  [AbstractExceptionHandler] Unhandled exception
javax.servlet.ServletException: java.lang.NoClassDefFoundError: Could not initialize class com.package.util.HibernateUtil
    at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:295)
    at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:170).......

3 个答案:

答案 0 :(得分:1)

您的代码正在尝试加载com.package.sit.util.HibernateUtil类的定义,但无法找到该类的定义。

此类错误通常与阻止加载 JAR 的类加载问题有关。检查CLASSPATH中是否包含所有必需的库。

答案 1 :(得分:0)

首先尝试添加这些.jar slf4j-api.jar和slf4j-log4j12.jar 因为hibernate内部使用这些jar。

如果它不起作用那么

按照netbeans

的这些步骤操作

第1步。 从netbean而不是原始文件中删除项目(不要选中要求从原始位置删除项目的框) 第2步。 从项目文件夹中删除dist和build文件夹 第3步。 使用现有源代码创建新项目。 第4步。 添加所需的库。 现在又建了。 现在跑。

我检查了它为我工作的项目。

答案 2 :(得分:0)

我经历了同样的错误(以及误导/无用的堆栈跟踪),但发现解决方案非常简单:

ojdbc14.jar复制到%CATALINA_HOME%\lib

这篇突破性发现得益于这篇Using Hibernate with Tomcat文章。

但是......如果我更专注,我会在日志的最开始看起来更高:

Jan 14, 2013 07:29:17 AM org.hibernate.connection.DriverManagerConnectionProvider configure
SEVERE: JDBC Driver class not found: oracle.jdbc.driver.OracleDriver
java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver

故事的道德:有时它会支付而不是在发生异常时只查看 ,而是在日志中更早出现。