web.xml中webAppRootKey

喜欢而已 提交于 2020-04-07 11:39:24

1、 web.xml配置 

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


"webapp.root"这个字符串可以随便写任何字符串。如果不配置默认值是"webapp.root"。
可以用System.getProperty("webapp.root")来动态获项目的运行路径。
一般返回结果例如:/usr/local/tomcat6/webapps/项目名

2、解决以下报错

部署在同一容器中的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.

3、加载方式

Spring通过org.springframework.web.util.WebAppRootListener 这个监听器来运行时的项目路径。
但是如果在web.xml中已经配置了 org.springframework.web.util.Log4jConfigListener这个监听器,
则不需要配置WebAppRootListener了。因为Log4jConfigListener已经包含了WebAppRootListener的功能
一般配置类型下面的例子:

Xml代码  收藏代码

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

  2. <context-param>  

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

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

  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>  

 

4、在运行时动态的找出项目的路径

在log4j.properties配置文件,就可以按下面的方式使用${webapp.root}:
 log4j.appender.file.File=${webapp.root}/WEB-INF/logs/sample.log 
就可以在运行时动态的找出项目的路径

 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!