tomcat下多应用log4j冲突:Web app root system property already set to different value

问题现象

在tomcat下部署多个应用并且同时配置相同的log4j,启动时报如下异常:

java.lang.IllegalStateException: Web app root system property already set to different value: 'webapp.root' = *********
Choose unique values for the 'webAppRootKey' context-param in your web.xml files!  

问题分析

webAppRootKey是在java web项目的web.xml配置文件中表示项目的唯一标示。如果web.xm 内没有设置webAppRootKey项,是为默认设置,那么webAppRootKey就是缺省的”webapp.root”。
对照着错误提示大概看了一下,意思是说Web应用程序根系统属性已经被设置,说白了就是说’webapp.root’ 这个配置名称已经被使用了,不能再用这个了,
并且也提示了Choose unique values for the ‘webAppRootKey’ context-param in your web.xml files ,也就是说我们可以在web.xml里配置一个唯一的’webAppRootKey’ ,这样就不会冲突了。
这个问题会出现在一个WEB服务器同时部署多个使用了Log4j的应用上。

示例如下:

### app1:
param>
    <param-name>webAppRootKeyparam-name>
    <param-value>app1.rootparam-value>
param>

### app2:
param>
    <param-name>webAppRootKeyparam-name>
    <param-value>app2.rootparam-value>
param>

你可能感兴趣的:(SSH框架)