將舊 SSH 專案原始碼複製到新建 Eclipse 專案後,發布至 Tomcat 啟動報 404,日誌顯示嚴重錯誤:
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
... (同樣錯誤還有 RequestContextListener, IntrospectorCleanupListener)
雖已將 spring-web.jar 放入 WEB-INF/lib,但類別仍找不到。
WEB-INF/lib 下確實存在 spring-web-*.jar。WEB-INF/lib 已映射至部署路徑。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 專案遷移時,編譯器版本、部署組件、構建路徑導出** 三者缺一不可,版本不一致是隱形殺手。