玩儿基于Tomcat的开发/部署这么久了,昨晚居然被Tomcat闪退耽搁了半个多小时。特意记之。
环境:Windows 10 64bits,jdk 1.6.0_45(32bits),Tomcat 6.0.53(32bits)
因为是第1次部署,所以连同Tomcat都打包拷贝。
过程
(1)在bin\startup.bat的头部设置JAVA_HOME环境变量
执行startup.bat之后只是输出了4行环境信息,然后窗口(控制台)就关闭了。
关键是没有日志输出(好歹要输出什么端口已经被绑定、部署文件夹啥的不可读取什么的错误啊)。
这样折腾了半天,把所有的配置都仔细看(掉沟里去了),也没找到问题。
(2)更换了Tomcat 6.0.45版本
重新从官网上下载6.0.45版本(8MB),解压,把部署copy到webapps文件夹,设置JAVA_HOME变量。
启动startup.bat,这下不闪退了,才看到了熟悉的、端口被占用的错误输出。至此,闪退的问题才得以解决。
一下子,还以为是版本bug导致。
(3)使用Tomcat 6.0.53重新发布
反正也是耽搁了,作者又用6.0.53的发布版本(8MB),解压,把部署copy到webapps文件夹,设置JAVA_HOME变量。
再启动startup.bat,也不闪退了。
结论
问题还是没有被定位,疑点有2:
(1)Tomcat的发布内容被破坏(在eclipse中启动tomcat实例是ok的;部署也是全体打包后拷贝的,不存在部分被破坏);
(2)通过eclipse编译输出的内容修改了Tomcat的某些配置,导致无法启动(没找到原因)
收获
对Tomcat闪退可以使用全新的Tomcat发布+部署,这样可以先排除Tomcat本身可能存在的问题。
即便这样还有问题,还可以逐步通过增减部署内容,定位有问题的部署(应该主要是配置)。