tomcat启动问题

今天重启tomcat服务需要10分钟左右的时间才能启动起来,经过一步一步排除,确定了是struts配置的问题,
从struts代码入手,分析其启动时的加载顺序:
        1、首先是加载其包里的资源文件;
        2、接着加载servlet的其它全局特性
        3、然后解析struts的配置文件struts-config.xml文件。

    知道了这些顺序之后,可以排除前两个,struts自带的东西可以肯定是不会出错的,把问题定位在strtus-config.xml的解析上。
   
    第一步:web.xml把非struts的配置都删掉,把struts-config.xml里面的所有配置项都删除,只保留一些空节点,重启tomcat启动速度没有变化,排除与应用的配置有关;
    第二步: 更新struts的解析xml的包(commons-digester.jar),重启tomcat进行测试,启动速度依然没有变化,排除解析xml包低的原因;
    第三步:当找不到故障的原因时,突然发现struts-config.xml的头文件中写有'struts-config_1_2.dtd'是1.2的版本,检查lib目录下struts的版本,发现是1.1的版本,把struts-config.xml
                    中的头文件1.2修改为1.1,重新启动,不到10s就已启动,貌似问题解决;
   第四步:为了确认已解决问题,把web.xml恢复,把struts-config.xml的配置都加上,然后重启,速度在10s左右,确定问题解决。

   总结:在项目的开始时,应保持版本的一致性,当各个版本不匹配时,可能就会出现一些奇怪的问题,为了避免这类问题,个人觉得最好的办法是在最初着手做时就杜绝掉这种失误的发生,否则在出现问题之后查找原因会相当的困难。

你可能感兴趣的:(tomcat,xml,Web,struts,servlet)