在 web.xml 配置 Servlet 時明明類名、包名都正確,卻報錯「ClassNotFoundException」或配置不生效?這通常是 IDE 編譯輸出未同步到部署目錄導致的。本文教你快速排查並解決。
java.lang.ClassNotFoundException: MyServelet.MyFirstServeletweb.xml 中 <servlet-class>MyServelet.MyFirstServelet</servlet-class> 拼寫無誤。IDE(Eclipse/IntelliJ IDEA)編譯產生的 .class 文件未正確發布到 Tomcat 的 WEB-INF/classes 或部署目錄。常見於:
Project > Clean...,IntelliJ 選 Build > Rebuild Project。Clean、Clean Tomcat Work Directory。Deployment Assembly 確認源碼目錄映射到 WEB-INF/classes。你的代碼中存在拼寫錯誤:MyServelet 應為 MyServlet,MyFirstServelet 應為 MyFirstServlet。雖然 Java 大小寫敏感,但統一命名規範能避免大量低級錯誤。
「類找不到」九成是編譯輸出未同步問題。養成 Clean → Rebuild → Clean Server → Restart 的操作肌肉記憶,能解決絕大多數莫名其妙的部署異常。