Diese Regel markiert Folgendes:
Context <Environment>
Elemente in der Datei META-INF/context.xml , die umgewandelt werden müssen
<env-entry>
Elemente in der
Datei WEB-INF/web.xml .
Apache Tomcat ermöglicht
Context <Environment>
an den folgenden Positionen zu definierende Elemente:
- Datei META-INF/context.xml
- XML-Anwendungskonfigurationsdatei im Tomcat-Verzeichnis conf
- Der
<Host>
Element in der Datei conf/server.xml
Da das Migrationstool möglicherweise keinen Zugriff auf das Tomcat -Konfigurationsverzeichnis hat, markiert es nur die
Context <Environment>
in der
Datei META-INF/context.xml
Context <Environment>
Informationen, die an anderen Positionen definiert sind, können in die Datei META-INF/context.xml kopiert werden, damit sie vom Tool verarbeitet werden können.
Angenommen, das Webprojekt enthält eine Datei WEB-INF/web.xml:
Context <Environment>
Elemente werden unter den folgenden Bedingungen markiert:
- Der Eintrag hat keinen entsprechenden Eintrag in der Datei web.xml.
- Der Eintrag hat einen anderen Typ als der entsprechende Eintrag in der Datei web.xml.
- Der Eintrag hat einen anderen Wert als der entsprechende Eintrag in der Datei
web.xml, und das Flag für Überschreibung (override) des Eintrags ist auf "false" gesetzt.
Es ist eine Schnellkorrektur für diese Regel im Quellenscanner verfügbar. Die Schnellkorrektur fügt eine neue
<env-entry>
Element in der Datei web.xml , die die
Context <Environment>
Element, wenn es noch nicht in der
Datei web.xml
Ist der Eintrag vorhanden, wird er aktualisiert.
Wenn die Datei WEB-INF/web.xml nicht vorhanden ist, geschieht Folgendes:
Alle
Context <Environment>
Elemente werden markiert.
Die Schnellkorrektur erstellt eine Datei WEB-INF/web.xml , die die entsprechende
<env-entry>
Elemente, wenn das Webprojekt Java EE 5 oder höher hat. Diese Schnellkorrektur meldet einen Fehler, wenn das Webprojekt ein J2EE-Projekt der Version
1.4 oder früher ist.
Stellen Sie sich als Beispiel eine Datei
META-INF/context.xml mit dem folgenden Inhalt vor:
< span class="Code"> < Umgebung
description="Auslösen, weil das Element nicht vorhanden ist"
name="newEntry"
override="false"
type= "java.lang.String" value= "abc123" />
<Environment
description="Auslösen, weil das Element einen anderen Wert hat"
name="contextEnvString_1"
override="false"
type="java.lang.String"
value = "neuer Wert " />
<Environment
description="Auslösen, weil das Element einen anderen Typ hat"
name="contextEnvString_2"
override="false"
type="java.lang.Integer"
Wert="123 "/>
<Environment
description="Nicht auslösen, weil override auf true gesetzt ist"
name="contextEnvString_3"
override="true"
type="java.lang.Integer"
Wert="123 "/>
Stellen Sie sich weiter vor, dass diese Datei die folgende Datei web.xml in der Anwendung hat:
< span class="Code"> < env-entry>
<description>Auslöser aufgrund eines anderen Werts</description>
<env-entry-name>contextEnvString_1</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>oldValue</env-entry-value>
</env-entry>
<env-entry>
<description>Auslöser wegen unterschiedlichen Typs</description>
<env-entry-name>contextEnvString_2</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>123</env-entry-value>
</env-entry>
<env-entry>
<description>wird nicht ausgelöst, weil die Überschreibung auf 'true' gesetzt ist.</description>
<env-entry-name>contextEnvString_3</env-entry-name>
<env-entry-type>java.lang.Integer</env-entry-type>
<env-entry-value>123456789</env-entry-value>
</env-entry>
Nach der Anwendung der Schnellkorrektur ist die Datei web.xml so aktualisiert, dass sie den folgenden
Inhalt aufweist:
< span class="Code"> < env-entry>
<description>Auslöser aufgrund eines anderen Werts</description>
<env-entry-name>contextEnvString_1</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>neuer Wert</env-entry-value>
</env-entry>
<env-entry>
<description>Auslöser wegen unterschiedlichen Typs</description>
<env-entry-name>contextEnvString_2</env-entry-name>
<env-entry-type>java.lang.Integer</env-entry-type>
<env-entry-value>123</env-entry-value>
</env-entry>
<env-entry>
<description>wird nicht ausgelöst, weil die Überschreibung auf 'true' gesetzt ist.</description>
<env-entry-name>contextEnvString_3</env-entry-name>
<env-entry-type>java.lang.Integer</env-entry-type>
<env-entry-value>123456789</env-entry-value>
</env-entry>
<env-entry>
<description>Auslöser ist nicht vorhanden</description>
<env-entry-name>newEntry</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>abc123</env-entry-value>
</env-entry>