背景说明:
弄完项目,在eclipse中自测无误,准备编译打包,过tomcat单独启动测试;
一切看起来没什么问题,开启tomcat服务,一开始也没有什么错误。
测试进行中,日志就报错,tomcat服务也停止
org.apache.catalina.core.StandardServer.await A valid shutdown command was received via the shutd...
StandardServer.await: Invalid command 'GET / HTTP/1.1' received
一直弹出
看到第一反应,端口被占了,Go Cmd 杀死端口,重新开tomcat。一启动再测试。
很奇怪,还是一样的错误,证明可能不是单纯的端口,
再重新进eclipse运行测试无误。
eclipse运行无误,为什么tomcat单独运行有错。
以防万一其他服务影响导致tomcat挂掉,仔细观察其他服务不可导致服务器down掉。
最后审查端口时发现问题,
每次开启tomcat,我的8080端口会有两个不同的 pid号,一个正在运行,一个在等待。
这就证明 一开启tomcat,我就开了两个端口。
发现问题 去server.xml 寻找
检查Tomcat的conf目录下的server.xml文件发现
<Server port="8080" shutdown="SHUTDOWN">
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
端口一致,更改为
<Server port="8060" shutdown="SHUTDOWN">
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
完美运行
揪其根本是
没有想到我的tomcat单独运行和eclipse集成的tomcat不一致导致的server.xml配置有误。
(接手别人的机器)
收获:
1.tomcat服务不要乱扔
2.接手不熟悉机器 应该详细理解各个配置 服务 存放地址,防止这种乌龙情况再发生。
(这个bug卡我好久)
3.最好从根本找起,tomcat有误就从tomcat开始找。
报错原因可能描述:(可能也是报这个错误但是用了我的办法还是不行)
1.像前文我说过的,确认是否有其他服务干扰,导致tomcat启动有误。
2.确认tomcat挂掉的时机,我这种情况是可以简单测试,不过超过指定时间就会挂。根据挂机时间确认自己的错误原因。
3.常见启动有误,大都是配置文件问题,仔细检查。
4.像我一样,弄错了路径,或者是下意识以为一致的情况,导致乌龙错误。仔细检查
5.端口占用(一开始就要尝试)
解决:tomcat服务器中 conf/server.xml
更改shutdown的端口
<Server port="8060" shutdown="SHUTDOWN">
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>