**1、 web.xml 配置 **
webAppRootKey
webapp.root
"webapp.root"这个字符串可以随便写任何字符串。如果不配置默认值是"webapp.root"。
可以用 System.getProperty("webapp.root")来动态获项目的运行路径。
一般返回结果例如:/usr/local/tomcat6/webapps/项目名
2、解决以下报错
部署在同一容器中的 Web 项目,要配置不同的,不能重复,否则报类似下面的错误:
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 代码
- < context-param>
-
< param-name>log4jConfigLocation</ param-name>
-
< param-value>WEB-INF/conf/log4j.properties</ param-value>
- </ context-param>
- < context-param>
-
< param-name>log4jRefreshInterval</ param-name>
-
< param-value>3000</ param-value>
- </ context-param>
- < listener>
-
< listener-class>org.springframework.web.util.Log4jConfigListener</ listener-class>
- </ listener>
4、在运行时动态的找出项目的路径
在 log4j.properties 配置文件,就可以按下面的方式使用 ${webapp.root}:
log4j.appender.file.File=${webapp.root}/WEB-INF/logs/sample.log
就可以在运行时动态的找出项目的路径
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于