问题描述:
1)一个项目比如 demo1.war,部署时启动成功;
2)多个项目比如:demo1.war demo2.war,部署时第二个项目启动失败,报failed due to previous errors
3)demo2.war 单独部署时启动成功。
4)demo1, demo2项目都使用了SpringMVC
问题分析:
1)项目单独部署可以正常启动,因此项目配置正确,排除所谓的jar包冲突、xml文件配置异常等错误;
2)比较大的可能性就是webAppRootKey啦,因为web.xml配置了Log4jConfigListener,该Listener会将该webapp的项目路径设置到系统全局变量中,以便在可以使用系统全局变量的地方获取到webapp的项目路径,当webAppRootKey没显性设置过,其默认值为webapp.root,所以项目demo2启动时webAppRootKey读取的还是webapp.root,log4j初始化路径就出异常啦。
解决方法:
在每个项目的web.xml中设置webAppRootKey,如下:
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>saaserp.root</param-value>
</context-param>