问题背景 :
之前把 idea 的版本做了一次升级,结果发现自己项目启动 Tomcat 后报了一个错误,实例化 Servlet 类 [com.yafnds.servlet.HelloServlet] 异常,具体错误格式可以查看这个文章:
【Java】tomcat 500错误解决系列一:实例化Servlet错误
主要内容为:
但是,我在试了网上的很多方法后发现,我这里找不到class文件的原因是Tomcat运行时根本没有编译class文件,如图:(编译后的target)
实际的出错原因 :父模块中出现了子模块的内容。
(出错时没有截图,后来试了好几次,发现没法复现bug,所以就没有截图了。如有需要,可以查看这篇文章( 解决:多模块项目:复制已有模块进行结构修改时报错:Module "xxx" must not contain source root "...\xxx\src\main\java". ),可以说是出现本次问题的根本原因)
解决办法:
打开该项目的 Project Structure 把父模块中不属于自己的特殊目录统统删掉,****点右侧的X即可
默认情况下,在更深的目录里:如下[Tomcat_HOME]\work\Catalina\localhost\[工程名]\org\apache\jsp\
这里不光有class文件,还有由jsp文件翻译而来的.java文件。
其实JSP首先会被翻译成.java文件,然后编译.java文件得到.class文件。
如果确实没有,清除服务器里残余的项目文件,刷新Myeclips里的工程,重新编译。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)