Tomcat 运行后 class 文件不编译

Tomcat 运行后 class 文件不编译,第1张

问题背景

 之前把 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里的工程,重新编译。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/11591172.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存