1. 程式人生 > >tomcat同時部署兩個專案的問題

tomcat同時部署兩個專案的問題

最近直接把兩個專案打成war包在tomcat下發布,出現了很多莫名奇妙的問題,就是不能釋出成功,只能有一個專案能成功,在網上查了很多方法,以為是兩個專案中jar包出現衝突,也按照網上的方法把兩個專案中相同的jar包找出來放在了tomcat的lib目錄下。結果還是不管用,只能啟動一個,另外一個被中斷。
      最後為了測試,我把2個專案都放在eclipse下同時部署2個專案並啟動tomcat,終於報錯啦,而這個錯誤就是解決問題的關鍵  錯誤如下: ?
1 java.lang.IllegalStateException: Web app root system property already set to different value

看了這篇帖子明白啦
http://blog.csdn.net/downloadsunlight2009/article/details/7514634

webAppRootKey是在java web專案的web.xml配置檔案中表示專案的唯一標示,在Eclipse除錯Web專案時,專案的路徑是一個臨時路徑,不在真正的路徑下,可以通過log4j日誌的方式打印出屬性值,來看看臨時專案路徑在哪裡,可以用System.getProperty("web.sample.root");如果web.xm 內沒有設定webAppRootKey項,是為預設設定,那麼webAppRootKey就是預設的"webapp.root"。

由於我的兩個專案都沒有設定這個webAppRootKey值,所以兩個webRootKey都是預設預設值。發生錯誤


解決辦法:
在其中一個專案中的web.xml檔案中的log4jlitener下面新增如下解決辦法:

?
1 2 3 4 5 6 7 8 <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> <context-param>