問題背景:之前把 idea 的版本做了一次升級,結果發現自己項目啟動 Tomcat 后報了一個錯誤,實例化 Servlet 類 [com.yafnds.servlet.HelloServlet] 異常,具體錯誤格式可以查看這個文章:
【Java】tomcat 500錯誤解決系列一:實例化Servlet錯誤
主要內容為:
1 HTTP狀態 500 - 內部服務器錯誤 2 類型 異常報告 3
4 消息 實例化Servlet類[package.SessionDemo_01_getSession]異常 5
6 描述 服務器遇到一個意外的情況,阻止它完成請求。
該錯誤的主要原因是:Tomcat 服務器在 target 文件夾下找不到需要的 class 文件
但是,我在試了網上的很多方法后發現,我這里找不到class文件的原因是Tomcat運行時根本沒有編譯class文件,如圖:(編譯后的target)
實際出錯原因:父模塊中出現了子模塊的內容。
(出錯時沒有截圖,后來試了好幾次,發現沒法復現bug,所以就沒有截圖了。如有需要,可以查看這篇文章(解決:多模塊項目:復制已有模塊進行結構修改時報錯:Module "xxx" must not contain source root "\...\xxx\src\main\java". ),可以說是出現本次問題的根本原因)
解決辦法:
打開該項目的 Project Structure 把父模塊中不屬於自己的特殊目錄統統刪掉,點右側的X即可