tomcat发布后项目classes下无编译文件

折腾了两天的事,终于解决了。

开始struts2项目正常运行,在一次更新后,忽然tomcat在启动阶段报错,提示配置action的xml文件出错,查看控制台发现是找不到对应的类。

解决过程如下:

1、首先排查是否是class类名/action路径/method名字错误, 发现都没问题,那么应该就是发布时的配置问题。

2、找到tomcat发布后的文件,发现在web-inf/classes下package都有,然而里面没有.class文件,说明是项目配置原因。以前曾碰到过web-inf下没有classes文件夹,记得当时出错原因在于项目-properties下

/src配置为空,这样服务器就不会把java文件编译到classes下。然而这次配置是正确的,并且classes下有对应的package,只是没有.class文件,意味着java文件没有被编译,很可能是jar包出现了问题

3、项目-build-path,果然libraries下多了个不明jar,且采用绝对路径,指向本地文件,可是我根本没有这个文件,应该是某位同学提交时出的问题,删掉,重启tomcat,然而还是报错!

4、试遍了网上能找到的所有方法,包括clean项目、删掉再部署,依然有问题!

5、突然想到会不会还有一些隐藏配置文件出了问题,因为其他人从svn导入的项目没有问题,那么可能是一些我没有提交的文件出了问题,于是开始检查.classpath文件。果不其然!在第三步时记得项目有一个指向本地jar包的lib,当时删掉了,然而在这里又看见了!

就是它!因为找到不到这个lib,项目无法编译,classes下的都为空,导致tomcat找不到对应的类,所以报错!!

解决办法:删掉这个不知道哪个添加的莫名的东西!!!!!!!

原文地址:https://www.cnblogs.com/liuhanz/p/5017551.html