首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

MyEclipse 2015 CI 整合 SSH2 報 NoClassDefFoundError:穩定版才是正解

     編輯:程式設計疑難解答

錯誤堆疊關鍵訊息

Caused by: java.lang.NoClassDefFoundError: org/hibernate/context/CurrentSessionContext
...
Caused by: java.lang.ClassNotFoundException: org.hibernate.context.CurrentSessionContext

根因分析

  • CurrentSessionContext 介面在 Hibernate 3.x 存在,Hibernate 4/5 已移除/遷移至 `org.hibernate.context.spi.CurrentSessionContext`。
  • 專案 `applicationContext.xml` 使用 `org.springframework.orm.hibernate3.LocalSessionFactoryBean`,暗示專案依賴 Hibernate 3。
  • MyEclipse 2015 CI (Community/Integration 測試版) 內建的 Maven/類別路徑解析存在缺陷,導致 Hibernate 3 相關 jar 未正確納入部署類別路徑(WEB-INF/lib)。

解決方案

  1. 換用穩定版 IDE:MyEclipse 2015 Stable 3 或更新的 MyEclipse 2017/2019/202x 正式版,不再出現此類部署缺陷。
  2. 若必須留在 CI 版:手動將 `hibernate3.jar`、`hibernate-commons-annotations.jar` 等複製到 `WebRoot/WEB-INF/lib`,並確認專案建置路徑包含它們。
  3. 長期建議:升級至 Spring 4/5 + Hibernate 5,使用 `LocalSessionFactoryBean` (packages `org.springframework.orm.hibernate5`),並遷移至 Maven/Gradle 管理依賴,脫離 IDE 內建建置系統。

驗證步驟

# 在專案目錄執行
mvn clean package -DskipTests
# 檢查 target/xxx.war 中 WEB-INF/lib 是否包含 hibernate3.jar

結語

工具鏈的穩定性直接影響開發效率。遭遇 IDE 測試版特有的部署 Bug 時,果斷切換至正式版或採用標準化建置工具(Maven/Gradle)是止損最快的路徑。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved