2011-04-14 46 views
2

我正在用hibernate运行一个web应用程序,并陷入了这个异常。Hibernate java.lang.NoClassDefFoundError

... 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)....... 
+0

给整个堆栈跟踪,和HibernateUtil类代码 – Bozho 2011-04-14 14:01:50

+0

是的,并检查你的静态代码/静态字段初始化在com.package.sit.util.HibernateUtil - 这就是问题所在。 – 2011-04-14 14:04:00

回答

1

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

这种类型的错误通常与加载类的问题有关,这些问题会阻止加载的文件加载到JAR。检查您是否拥有CLASSPATH中的所有必需库。

+0

问题解决。我正在为我的应用程序使用DB2数据库和JBoss服务器。服务器中缺少DB2驱动程序。 – 2011-04-14 14:27:32

0

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

如果没有,那么工作

请按照下列步骤,NetBeans的

步骤1. 从netbean而不是原来的文件删除项目(不要检查哪个是要求其删除该项目的复选框原始位置) 第2步。 从您的项目文件夹中删除dist和生成文件夹 第3步。 使用现有源代码创建新项目。 第4步。 添加所需的库。 现在再次建成。 现在运行。

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

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 

这个故事告诉我们:

但是......如果我是更加集中,我会在日志一开始看着一路走高有时候值得只查找在发生异常的地方,但在日志中更早。