web.xml中webAppRootKey

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. <context-param>

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

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

  9. </context-param>

  10. <listener>

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

  12. </listener>

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

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

转载自http://elf8848.iteye.com/blog/2008595

本文转自lzf0530377451CTO博客,原文链接:http://blog.51cto.com/8757576/1834014,如需转载请自行联系原作者

web.xml中webAppRootKey相关推荐

  1. 在tomcat下部署两个或多个项目时 log4j和web.xml配置webAppRootKey 的问题(转)

    在tomcat下部署两个或多个项目时 web.xml文件中最好定义webAppRootKey参数,如果不定义,将会缺省为"webapp.root",如下: <!-- 应用路径 ...

  2. Jsp在Web.xml中的配置

    以下列出web.xml经常使用的标签元素及这些标签元素的功能: 1.指定欢迎页面.比如: <welcome-file-list> <welcome-file-list> < ...

  3. web.xml 中的listener、 filter、servlet 加载顺序及其详解(转)

    在项目中总会遇到一些关于加载的优先级问题,近期也同样遇到过类似的,所以自己查找资料总结了下,下面有些是转载其他人的,毕竟人家写的不错,自己也就不重复造轮子了,只是略加点了自己的修饰. 首先可以肯定的是 ...

  4. web.xml中filter,servlet和listener区别

    2019独角兽企业重金招聘Python工程师标准>>> 1.Filter与Servlet的区别和联系,点击查看详情 2.Filter的执行顺序与实例,点击查看详情 Filter 实现 ...

  5. JavaWeb的web.xml中context-param、listener、filter、servlet加载顺序(重点)

    文章目录 结论 分析 1.context-param 2.listener 3.filter 4.servlet 总结 结论 先说结论,在JavaWeb的web.xml中的加载顺序为: context ...

  6. [转]web.xml 中的listener、 filter、servlet 加载顺序及其详解

    2019独角兽企业重金招聘Python工程师标准>>> 转自:http://zhxing.iteye.com/blog/399668 在项目中总会遇到一些关于加载的优先级问题,近期也 ...

  7. web.xml 中的listener、 filter、servlet 加载顺序及其详解

    在项目中总会遇到一些关于加载的优先级问题,近期也同样遇到过类似的,所以自己查找资料总结了下,下面有些是转载其他人的,毕竟人家写的不错,自己也就不重复造轮子了,只是略加点了自己的修饰. 首先可以肯定的是 ...

  8. web.xml中load-on-startup的作用

    今天在研究SpringMCV web.xml配置的时候发现load-on-startup标签,之前只是大概知道使用它是用来控制servlet加载顺序的.今天研究了一下. 如下是从网上找到的一片总结的比 ...

  9. web.xml 中的filter

    Servlet API的2.3版本中最重要的一个新功能就是能够为servlet和JSP页面定义过滤器.过滤器提供了某些早期服务器所支持的非标准"servlet链接"的一种功能强大且 ...

最新文章

  1. 新装oracle如何启动服务,Oracle数据库新装之后出现的监听程序无法正常启动和运行(Oracle-12514)问题...
  2. Kotlin极简教程:第4章 基本数据类型与类型系统
  3. 3.1 if条件语句
  4. android 动态广告图片,android – 如何在动态壁纸的设置屏幕中添加一个admob广告视图?...
  5. OSI七层模型与TCP/IP五层模型详解
  6. 测试面试题集-Python编程题(1)
  7. 《大型数据库技术》MySQL的进阶开发技巧
  8. c# 如何获取项目的根目录
  9. SVN安装和中文语言包安装
  10. linux hping3命令,系列H - hping3 - 测试网络及主机的安全 - 《Linux命令大全》 - 技术池(jishuchi.com)...
  11. 在Eclipse中如何快速的计算代码量
  12. 平板电脑可以装python吗_电脑上的应用程序可以装在平板电脑上吗
  13. 思科认证和华为认证哪个更香?
  14. 模型结构可视化神器——Netron(支持tf, caffe, keras,mxnet等多种框架)
  15. 关于Windows和Linux的那些事儿
  16. java开发手机app教程,看完必懂
  17. 计算机的许可服务在哪里打开,Win10服务在哪里,怎么打开Win10服务列表?
  18. div css经典布局实例,div+css布局实例:常用图文混排(一)--腾讯图文 - 蜗爱CSS
  19. 水星USB无线网卡mw150us苹果macOS系统驱动成功
  20. devC++代码格式化对齐的快捷键

热门文章

  1. JACK——BOM Exercise2
  2. 一个第三方Dart库导致的编译错误!
  3. KVM之初体验——QEMU安装虚拟机
  4. 招聘启事的正确阅读方式您知多少?
  5. 菜鸟程序员如何提升自己的潜在价值
  6. php中heredoc的使用方法
  7. hadoop 之NullWritable与ObjectWritable
  8. ZooKeeper 集群为啥最好奇数台?
  9. Kubernetes学习笔记之Calico Startup源码解析
  10. 绘制等压面图_等压面练习