打包好的war包无法在CentOS的tomcat运行。
情况描述:将项目打包好的war包取名为ROOT丢到Tomcat的webapps文件夹下(已经提前删除了Tomcat中自带的文件),理论上来说,Tomcat会自动解析ROOT包并为我们部署,但我在使用startup.sh命令后,项目并没有像我想想的一样成功部署。
排错流程:
-
查看进入Tomcat的logs文件夹中查看日志,发现日志上说Tomcat使用的端口被占用了,于是使用CentOS查找使用8080端口的程序,kill掉该程序后再次启动Tomcat
-
项目依旧没有部署成功,此时查看日志发现日志并没有更新,于是我怀疑是不是项目代码出了问题,回到个人电脑检查配置文件是否适配了CentOS,检查自己的电脑是否能跑动项目,检查完毕都没有问题,
-
考虑另外一个问题,是否是CentOS上的Tomcat在部署项目的时候没有能成功启动我的项目,关于这个问题,我的项目代码里面已经有继承一个能被Tomcat访问的父类,重写了里面一个方法,确保CentOS上的Tomcat能访问到,然而这也没能解决问题。
-
于是上网百度我面对的问题,启动Tomcat后日志文件没有更新
-
博客上有不少遇到相同问题的开发者,它们表示也遇到这种问题,解决的方案是在bin目录下使用
./catalina.sh run
的命令,在该命令下使用start.sh命令就可以解决该问题了
参考博客:https://blog.csdn.net/minolk/article/details/83305936
如果只是解决问题的话,看到这里就可以停了哈,以下是关于这个方法为什么能解决问题的研究:
./catalina.sh run的说明
Linux下Tomcat启动后显示控制台:
采用 ./startup.sh 启动,则没有显示控制台。
要像windows一样显示控制台,则 : ./catalina.sh run
startup.sh 调用了catalina.sh ,负责Tomcat的启动与关闭的实际上是catalina.sh脚本
参考博客:https://blog.csdn.net/azhegps/article/details/53993615
研究了一段时间也没能得到解决方案,决定先把问题搁置,等以后实力继续提升了说不定这个问题就能解决了。