在调用tomcat 的shutdown时,发现两个有趣的问题:
1:在server.xml中定义的 port="8005 shutdonw="SHUTDOWN",可以通过 往本机的8005发送字符SHUTDOWN来停止服务,很神奇的做法,但只能本机。
2:如果使用 shutdown -port=8005 -config="..../server.xml" 时,会报错,找不到 ..../conf/server.xml文件。
查了半天的原因,因为提示的路径下确实没有server.xml,我把它放到其它地方了,在启动时,指定了config路径,是OK的,但为什么在shutdown时就不行了呢?
最后发现,如果我把顺序换成 shutdown -config="" -port=8005,一切就OK了。
看了一下源码,发现了原因。原来如果先查port,它会去找系统的xml中的shutdown端口是否匹配, 而这时因为没有解释-config参数,就使用了系统默认路径,当然就找不到server.xml了。如果先 -config,那就没这个问题了。
这算是一个bug吧?