问题背景:之前把 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即可