使用 Java EE 部署描述符来定义上下文参数

此规则会标记在 META-INF/context.xml 文件中找到的 Context <Parameter> 元素。

Apache Tomcat 允许在下列位置中定义 Context <Parameter> 元素:

该迁移工具仅迁移 META-INF/context.xml 文件中的参数元素。 其他位置中定义的参数信息必须复制到 META-INF/context.xml 文件,才能进行处理。

如果 WEB-INF/web.xml 存在于 Web 项目中:

在下列任一情况下,都将标记 Context <Parameter> 元素:

在源扫描程序中,为此规则提供了快速修订。 如果 web.xml 文件中尚不存在表示 Context <Parameter> 元素的 <context-param> 元素,那么该快速修订会在 web.xml 文件中添加一个新的 <context-param> 元素。 如果该条目已存在,那么会更新该条目。

如果 WEB-INF/web.xml 不存在:

将标记所有 Context <Parameter> 元素。

如果 Web 项目是 Java EE 5 或更高版本,那么该快速修订将创建包含相应 <context-param> 元素的 WEB-INF/web.xml 文件。 如果 Web 项目是 J2EE 1.4 或更低版本,那么该快速修订将报告错误。

例如,考虑具有以下内容的 META-INF/context.xml 文件:

<Parameter
description="Trigger because it does not exist"
name="newEntry"
override="false"
value="abc123"/>
<Parameter
description="Trigger because of different value"
name="parameter_1"
override="false"
value="new Value"/>
<Parameter
description="Will not trigger because of override set to true"
name="parameter_2"
override="true"
value="123"/>

在应用程序中具有以下 web.xml 文件:

<context-param>
<description>Trigger because of different value</description>
<param-name>parameter_1</param-name>
<param-value>oldValue</param-value>
</context-param>

<context-param>
<description>Will not trigger because of override set to true</description>
<param-name>parameter_2</param-name>
<param-value>123456789</param-value>
</context-param>

应用该快速修订后,将更新 web.xml 以包含:

<context-param>
<description>Trigger because it does not exist</description>
<param-name>newEntry</param-name>
<param-value>abc123</param-value>
</context-param>

<context-param>
<description>Trigger because of different value</description>
<param-name>parameter_1</param-name>
<param-value>new Value</param-value>
</context-param>

<context-param>
<description>Will not trigger because of override set to true</description>
<param-name>parameter_2</param-name>
<param-value>123456789</param-value>
</context-param>

有关 Tomcat 中上下文参数的更多信息,请参阅: