web.xml配置webAppRootKey

web.xml文件中webAppRootKey属性是web项目的绝对路径,默认值是webApp.root,可以通过System.getProperty(“webApp.root”)来获取属性值或者在配置文件中通过${webApp.root}获得。

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

Spring通过 org.springframework.web.util.WebAppRootListener 这个监听器来注入项目路径,因此部署在同一个web容器中的项目,要配置不同的param-value(比如”项目名.root”),不然会造成冲突。但是如果在web.xml中已经配置了org.springframework.web.util.Log4jConfigListener这个监听器,则不需要配置WebAppRootListener了。因为Log4jConfigListener已经包含了WebAppRootListener的功能。WebAppRootListener要在ApplicationContext的ContextLoaderListener之前,否则ApplicationContext的bean注入根目录值时会发生无法注入异常。
配置WebAppRootListener:

<listener>
        <listener-class>org.springframework.web.util.WebAppRootListener</listener-class>
 </listener>

web.xml中配置及其监听器顺序如下:

<!--注意各监听器的顺序,否则可能会出现上述的${webapp.root}/WEB-INF/log/sshtest.log不存在的异常-->  
    <!-- log4j config path -->  
  < context-param > 
    <param-name >log4jConfigLocation </param-name > 
    <param-value >/WEB-INF/classes/log4j.properties </param-value > 
  </ context-param > 
   <!-- webapp root path -->  
  < context-param > 
    <param-name >webAppRootKey </param-name > 
    <param-value >projectName.root </param-value > 
  </ context-param > 
      <!-- Spring相关的配置 -->
      <context-param >
            <param-name >contextConfigLocation </param-name >
            <param-value >/WEB-INF/applicationContext.xml,
           /WEB-INF/dataBeanContext.xml </param-value >
      </context-param >     

      <!-- log4j config listener -->  
      <listener > 
        <listener-class > 
            org.springframework.web.util.Log4jConfigListener 
        </listener-class > 
      </listener > 

      <!-- 使用ContextLoaderListener初始化Spring容器 -->
      <listener >
           <listener-class >org.springframework.web.context.ContextLoaderListener
            </listener-class >
      </listener >
  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
东方通的web.xml文件中有一些配置项需要注意。首先,web.xml文件中可以配置一个<context-param>,其中的<param-name>为webAppRootKey,<param-value>为webapp.root。这个字符串可以随便写任何内容,如果不配置,默认值是"webapp.root"。这个配置可以通过System.getProperty("webapp.root")来获取项目的运行路径。一般返回的结果为例如:/usr/local/tomcat6/webapps/项目名。 此外,在部署同一容器中的多个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。因此,在web.xml文件中选择唯一的值来配置'webAppRootKey'这个context-param。 以上是关于东方通的web.xml文件的一些说明和配置指导。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [使用东方通部署多个web应用](https://blog.csdn.net/imagination1022/article/details/130153526)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [web.xml中设置根目录](https://blog.csdn.net/xqhys/article/details/54618791)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值