標籤:
轉自:http://blog.csdn.net/arvin_qx/article/details/6829873
在tomcat下部署兩個或多重專案時,web.xml檔案中最好定義webAppRootKey參數,如果不定義,將會預設為“webapp.root”,如下:
<!-- 應用路徑 --><context-param><param-name>webAppRootKey</param-name><param-value>webapp.root</param-value></context-param>
最好確保每個項目的參數值不同,以免引起項目衝突:
嚴重: Exception sending context initialized event to listener instance of class org.springframework.web.util.Log4jConfigListenerJava.lang.IllegalStateException: Web app root system property already set to different value: ‘webapp.root‘ = [C:\Program Files (x86)\Apache Software Foundation\Tomcat 6.0\webapps\DRMProject\] instead of [C:\Program Files (x86)\Apache Software Foundation\Tomcat 6.0\webapps\DRMSn\] - Choose unique values for the ‘webAppRootKey‘ context-param in your web.xml files!
對多重專案要對webAppRootKey進行配置,這裡主要是讓log能將日誌寫到對應項目根目錄下,如我配置這兩個項目的webAppRootKey為:
<!-- 應用路徑 --> <context-param> <param-name>webAppRootKey</param-name> <param-value>webapp.root1</param-value> </context-param> ==================================<!-- 應用路徑 --> <context-param> <param-name>webAppRootKey</param-name> <param-value>webapp.root2</param-value> </context-param>
這樣就不會出現衝突了。
定義以後,在Web Container啟動時將把ROOT的絕對路徑寫到系統變數裡。
然後log4j的設定檔裡就可以用${webName.root}來表示Web目錄的絕對路徑,把log檔案存放於webapp中。
log4j和web.xml配置webAppRootKey 的問題(一個tomcat下部署多個應用)