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

Eclipse 發布 SSH 專案啟動報錯 ClassNotFoundException: ContextLoaderListener 解決記錄

     編輯:程式設計綜合問答

錯誤現象

將舊 SSH 專案原始碼複製到新建 Eclipse 專案後,發布至 Tomcat 啟動報 404,日誌顯示嚴重錯誤:

java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
... (同樣錯誤還有 RequestContextListener, IntrospectorCleanupListener)

雖已將 spring-web.jar 放入 WEB-INF/lib,但類別仍找不到。

排查過程

  1. 確認 WEB-INF/lib 下確實存在 spring-web-*.jar。
  2. 檢查專案屬性 Deployment Assembly,確認 WEB-INF/lib 已映射至部署路徑。
  3. 檢查 Java Build Path - Order and Export,確認庫被勾選導出。
  4. 關鍵發現:專案編譯器相容性版本 (Compiler compliance level) 設定錯誤 (如設為 1.7 但專案需 1.6),導致類別檔版本不匹配,載入失敗。

解決方法

右鍵專案 → Properties → Java Compiler,取消勾選 Use compliance from execution environment,將 Compiler compliance level 設定為專案要求的 JDK 版本 (如 1.6 或 1.8),重新建置專案,清理 Tomcat 工作目錄後重新發布。

心得

Eclipse 專案遷移時,編譯器版本、部署組件、構建路徑導出** 三者缺一不可,版本不一致是隱形殺手。

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