web.xml中webAppRootKey

一、 web.xml配置 javascript

<context-param>
<param-name>webAppRootKey</param-name>
<param-value>webapp.root</param-value>
</context-param>java


"webapp.root"這個字符串能夠隨便寫任何字符串。若是不配置默認值是"webapp.root"。
能夠用System.getProperty("webapp.root")來動態獲項目的運行路徑。
通常返回結果例如:/usr/local/tomcat6/webapps/項目名

二、解決如下報錯web

部署在同一容器中的Web項目,要配置不一樣的<param-value>,不能重複,不然報相似下面的錯誤:
Web app root system property already set to different value: 'webapp.root' = [/home/user/tomcat/webapps/project1/] instead of [/home/user/tomcat/webapps/project2/] - Choose unique values for the 'webAppRootKey' context-param in your web.xml files!  
意思是「webapp.root」這個key已經指向了項目1,不能夠再指向項目2.

三、加載方式spring

Spring經過org.springframework.web.util.WebAppRootListener 這個監聽器來運行時的項目路徑。
可是若是在web.xml中已經配置了 org.springframework.web.util.Log4jConfigListener這個監聽器,
則不須要配置WebAppRootListener了。由於Log4jConfigListener已經包含了WebAppRootListener的功能
通常配置類型下面的例子:tomcat

Xml代碼  收藏代碼app

  1. <!-- 加載Log4J 配置文件  -->  webapp

  2. <context-param>  spa

  3.     <param-name>log4jConfigLocation</param-name>  orm

  4.     <param-value>WEB-INF/conf/log4j.properties</param-value>  xml

  5. </context-param>     

  6.   

  7. <context-param>  

  8.     <param-name>log4jRefreshInterval</param-name>  

  9.       <param-value>3000</param-value>  

  10.  </context-param>  

  11.   

  12. <listener>  

  13.     <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>  

  14.  </listener>  

 

四、在運行時動態的找出項目的路徑

在log4j.properties配置文件,就能夠按下面的方式使用${webapp.root}: log4j.appender.file.File=${webapp.root}/WEB-INF/logs/sample.log 就能夠在運行時動態的找出項目的路徑

相關文章
相關標籤/搜索