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

来源:互联网 发布:淘宝api 获取卖家订单 编辑:程序博客网 时间:2024/06/08 08:37

启动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文件:

<context-param>    <param-name>webAppRootKey</param-name>    <param-value>project1</param-value></context-param>

②修改project2的web.xml文件:

<context-param>    <param-name>webAppRootKey</param-name>    <param-value>project2</param-value></context-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
原创粉丝点击