2011-04-14 22 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 

這個故事告訴我們:

但是......如果我是更加集中,我會在日誌一開始看着一路走高有時候值得只查找在發生異常的地方,但在日誌中更早。

相關問題