休眠java.lang.NoClassDefFoundError

问题描述

| 我正在使用休眠模式运行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).......
    

解决方法

您的代码正在尝试加载
com.package.sit.util.HibernateUtil
类的定义,但找不到该类的定义。 这种错误通常与阻止加载JAR的类加载问题有关。检查
CLASSPATH
中是否具有所有必需的库。     ,首先尝试添加这些.jar slf4j-api.jar和slf4j-log4j12.jar 因为冬眠在内部使用这些jar。 如果它不起作用,那么 对netbeans遵循以下步骤 步骤1。 从netbean删除项目,但不删除原始文件(不要选中要求从原始位置删除项目的框) 第2步。 删除dist并从项目文件夹中构建文件夹 第三步 使用现有的源代码创建新项目。 步骤4。 添加所需的库。 现在再次建造。 现在运行。 我检查了我的项目,它为我工作。     ,我经历了相同的确切错误(以及令人误解的/无用的堆栈跟踪),只是发现解决方案非常简单: 将
ojdbc14.jar
复制到
%CATALINA_HOME%\\lib
。 多亏了这篇与Tomcat一起使用Hibernate的文章,才使这一突破性发现成为可能。 但是...如果我更加专注,那么在日志的开头我会看起来更高:
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
故事的寓意:有时值得一提的是,不要只看发生异常的地方,而是要早得多地查看日志。