解决在Tomcat中同时部署两个项目问题

来源:互联网 发布:阿里云域名拍卖 编辑:程序博客网 时间:2024/05/20 18:44

将两个项目打成war包在tomcat下部署会出现一些问题,只有一个项目能部署成功。将两个项目导入到Eclipse中同时部署并启动Tomcat,经过测试报错如下:java.lang.IllegalStateException: Web app root system property already set to different value,它的意思是将Web app root系统属性设置为不同的值。

webAppRootKey是在java web项目的web.xml配置文件中表示项目的唯一标示,在Eclipse调试Web项目时,项目的路径是一个临时路径,不在真正的路径下。可以通过log4j日志的方式打印出属性值,来看看临时项目路径在哪里,可以用System.getProperty(“web.sample.root”);如果web.xm 内没有设置webAppRootKey项,是为默认设置,那么webAppRootKey就是缺省的“webapp.root”。

Spring通过org.springframework.web.util.WebAppRootListener这个监听器来压入项目路径。但是如果在web.xml中已经配置了org.springframework.web.util.Log4jConfigListener这个监听器,则不需要配置WebAppRootListener了。因为Log4jConfigListener已经包含了WebAppRootListener的功能。

由于我们的两个项目的webAppRootKey都是使用缺省值,也并未使用Log4jConfigListener压入项目路径,所以会抛出java.lang.IllegalStateException异常。解决方案就是下项目启动时改变webAppRootKey的缺省值,
在其中一个项目中的web.xml文件中添加如下代码:

<listener><listener-class>org.springframework.web.util.Log4jConfigListener</listener-class></listener><context-param>      <param-name>webAppRootKey</param-name>      <param-value>app.root</param-value> </context-param>

0 0
原创粉丝点击