Tomcat的上下文层次结构

时间:2013-07-15 15:07:18

标签: java tomcat servlets

我知道tomcat可以通过几种不同的方式定义上下文。对于这个特定问题,我在 $ CATALINA_HOME / conf / context.xml 中定义了一个主要上下文,并在每个模块的 /META-INF/context.xml中定义了每个模块上下文。我的问题是,如果我在主要上下文中设置了某些未在每个模块上下文中设置/覆盖的参数,那么这些参数在加载每个模块上下文时仍然会生效。

示例:

|----$CATALINA_HOME/conf/context.xml (i have logAbandoned=true set here)
|
|----webaps
       |
       |---META-INF/context.xml (no mention of logAbandoned here)

在上面的场景中,logAbandoned=true是否会应用于webapp的上下文,因为它尚未被覆盖或包含?或者只应用 META-INF / context.xml 中设置的参数,而不应用主 context.xml 中设置的任何参数。

由于

1 个答案:

答案 0 :(得分:2)

Apache's documentation

  

可以定义适用于多个Web的默认Context元素   应用。单个Web应用程序的配置将   覆盖在其中一个默认值中配置的任何内容。任何嵌套   元素,例如元素,在默认情况下定义   将为默认的每个上下文创建一次上下文   适用。它们不会在Context元素之间共享。

     
      
  • 在$ CATALINA_BASE / conf / context.xml文件中:所有Web应用程序都将加载Context元素信息。
  •   
  • 在$ CATALINA_BASE / conf / [enginename] / [hostname] /context.xml.default文件中:   Context元素信息将由所有Web应用程序加载   那个主人。
  •   

所以看起来主要上下文首先应用于所有应用程序,然后应用模块的上下文,覆盖与默认context.xml匹配的任何上下文元素。