Tomcat自带了一个基于网页的web应用管理工具,可以帮助我们监控&管理部署上去的WEB APP。恰好之前碰到的一个相关的BUG,借BUG简略介绍下。
先记录下BUG:把Spring Boot融进旧的WEB程序中,不过依然是打包成WAR部署到本地的TOMCAT跑。都一次可以运行,然而日志有点冲突(LOGBACK与LOG4J循环调用),去掉Spring Boot默认的LOGBACK日志改用LOG4J2就行了。
第二次运行的时候就出问题了,TOMCAT的日志并没有显示任何错误,但是请求好几个接口都是返回404
解决BUG的过程:
1、先检查代码。。。按照惯例,看不出什么问题
查看JVM以及SERVLET/接口的情况
2、查看接口相关的信息
通过http://localhost:8080/manager/html进入汤姆猫的管理界面(需要用户/密码,可通过TOMCAT配置文件自定义)
<user username="tomcat" password="2333" roles="manager-gui,manager-script,manager-jmx,admin-gui"/>
tomcat-users.xml
点击进入Server Status:
此时会列出JVM相关的一些信息。继续点击Complete Server Status:
可以看到该TOMCAT管理的所有WEB应用:
找到刚部署上去的WEB应用,点击。。。
跳转到TEST应用的SERVLET/接口相关信息:
发现TEST应用除了jsp与dispatcherServlet之外空空如也。。
动态管理WEB应用
3、直接进入TOMCAT根目录下的webapp文件夹中检查TEST应用的情况,发现TEST应用由WAR解压出来的实际文件并不完整(WAR包有20MB,实际文件所占空间却远远比它小)。
于是再次来到TOMCAT的应用管理页面下,点击List Applications找到TEST:
点击RELOAD问题就解决了!(如图,除了RELOAD还有其它管理选项,功能都顾名思义)
后续:尝试重现一下BUG但是失败了,并不知道是什么原因导致的,推测是由于上次部署的残留文件(瞎猜)。