tomcat同時部署兩個專案的問題
阿新 • • 發佈:2019-02-10
最近直接把兩個專案打成war包在tomcat下發布,出現了很多莫名奇妙的問題,就是不能釋出成功,只能有一個專案能成功,在網上查了很多方法,以為是兩個專案中jar包出現衝突,也按照網上的方法把兩個專案中相同的jar包找出來放在了tomcat的lib目錄下。結果還是不管用,只能啟動一個,另外一個被中斷。
最後為了測試,我把2個專案都放在eclipse下同時部署2個專案並啟動tomcat,終於報錯啦,而這個錯誤就是解決問題的關鍵 錯誤如下: ?
最後為了測試,我把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 >
|