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

Tomcat 報錯「Wrapper cannot find servlet class」原因排查與解決

     編輯:Java 綜合教學

Tomcat 報錯「Wrapper cannot find servlet class」原因排查與解決

部署項目訪問 Servlet 時拋出 ClassNotFoundException,提示 Wrapper cannot find servlet class xxx,通常由以下三類原因導致。

常見原因

  1. web.xml 配置錯誤
    • <servlet-name> 在 <servlet> 與 <servlet-mapping> 中不一致。
    • <servlet-class> 寫錯全限定類名(包名、類名大小寫、拼寫)。
  2. Servlet 類未編譯
    • 源碼有語法錯誤導致編譯失敗,target/classes 或 WEB-INF/classes 下無對應 .class 文件。
    • Eclipse 未開啟 Build Automatically,修改代碼後未手動構建。
  3. 部署發布問題
    • Eclipse/IDEA 發布配置錯誤,未將編譯輸出目錄映射到 WEB-INF/classes。
    • Maven 項目 pom.xml 打包配置缺失,導致類未打入 WAR。

快速排查步驟

  1. 打開項目輸出目錄(如 target/classes/com/xxx/YourServlet.class),確認 .class 文件存在。
  2. 若不存在 → 檢查編譯錯誤 → 執行 Project → Build Project 或開啟 Build Automatically。
  3. 若存在 → 檢查 web.xml servlet-class 拼寫與 servlet-name 映射。
  4. 清理 Tomcat 工作目錄:server.xml 同級 work/Catalina/localhost/ 刪除項目文件夾,重新發布。

解決方案總結

  • 開啟 Build Automatically:Eclipse Project → Build Automatically 勾選,保存即編譯。
  • 手動構建:每次發布前 Project → Build Project。
  • Maven 項目:執行 mvn clean compile 或 IDEA Maven → Reload Project。

核心原則:先確認 .class 文件物理存在,再核對 web.xml 映射,90% 情況即可解決。

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