我知道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 中设置的任何参数。
由于
答案 0 :(得分:2)
可以定义适用于多个Web的默认Context元素 应用。单个Web应用程序的配置将 覆盖在其中一个默认值中配置的任何内容。任何嵌套 元素,例如元素,在默认情况下定义 将为默认的每个上下文创建一次上下文 适用。它们不会在Context元素之间共享。
- 在$ CATALINA_BASE / conf / context.xml文件中:所有Web应用程序都将加载Context元素信息。
- 在$ CATALINA_BASE / conf / [enginename] / [hostname] /context.xml.default文件中: Context元素信息将由所有Web应用程序加载 那个主人。
所以看起来主要上下文首先应用于所有应用程序,然后应用模块的上下文,覆盖与默认context.xml匹配的任何上下文元素。