Tomcat -- 多个Context启动冲突的问题解决

启动Tomcat时,如果部署多个Web应用,可能会看到如下异常信息:

Exception sending context initialized event to listener instance of class org.springframework.web.util.Log4jConfigListener
Java.lang.IllegalStateException: Web app root system property already set to different value: ‘webapp.root’ = [/Users/work/apache-tomcat-7.0.52/webapps/project1/] instead of [/Users/work/apache-tomcat-7.0.52/webapps/project2/] - Choose unique values for the ‘webAppRootKey’ context-param in your web.xml files!

假设有两个web应用:project1和project2
project1所在目录为:/Users/work/apache-tomcat-7.0.52/webapps/project1
project2所在目录为:/Users/work/apache-tomcat-7.0.52/webapps/project2

解决方法为:修改project1和project2中的web.xml文件
①修改project1的web.xml文件:

param>
    <param-name>webAppRootKeyparam-name>
    <param-value>project1param-value>
param>

②修改project2的web.xml文件:

param>
    <param-name>webAppRootKeyparam-name>
    <param-value>project2param-value>
param>

在Java代码中,可以通过如下方法获取webapp.root:
①获取project1的webapp.root

System.getProperty("project1");

输出为:

/Users/work/apache-tomcat-7.0.52/webapps/project1

②获取project2的webapp.root

System.getProperty("project2");

输出为:

/Users/work/apache-tomcat-7.0.52/webapps/project2

你可能感兴趣的:(Java)