之前写过一篇关于升级tomcat的文章,今天写点比较细节的东西。
我们知道,升级tomcat,在“(我们认为)正常”的情况下,只要配置对了,升级都可以正常运行,那今天我们讨论一个反例:即我们配置错误的情况下会如何呢?
我同时在 tomcat6 和 tomcat7 中的 server.xml 中的 <Host> 内配置 一个 <Context> 属性docBase指向一个不存在的应用路径,这个时候会发生什么呢?
分别启动两个tomcat (同时启动也可以,不过要配置好其它地方,比如port的值最好不要一样),你会发现 tomcat6 可以肆无忌惮的启动,而tomcat7 执行完 sh startup.sh后虽然显示 tomcat started,但连影子都看不到;
通过查看两个tomcat的日志,发现两个tomcat都有报错:
java.lang.IllegalArgumentException: Document base /root/apache-tomcat/webapps/ABC does not exist or is not a readable directory
但貌似tomcat6只是 “看的”,选择继续前进,而tomcat7却 “纠结”着这个不放,最后tomcat6启动了,tomcat7无动静;
个人觉得这可能是tomcat6会放水,而tomcat7 有更严格的验证“审查”制度,眼里容不得沙子。
如有高见,请评论,谢谢。