Diese Regel markiert Elemente des Typs Context <Environment> in der Datei META-INF/context.xml, die in Elemente des Typs <env-entry> in der Datei WEB-INF/web.xml umgesetzt werden müssen.
Apache Tomcat lässt die Definition von Elementen des Typs Context <Environment> an den folgenden Positionen zu:
Da das Migrationstool möglicherweise keinen Zugriff auf das Tomcat-Konfigurationsverzeichnis hat, markiert es die Elemente des Typs Context <Environment> in der Datei META-INF/context.xml nur. Informationen des Typs Context <Environment>, die an anderen Positionen definiert werden, können in die Datei META-INF/context.xml kopiert werden, damit sie vom Tool verarbeitet werden.
Angenommen, das Webprojekt enthält eine Datei WEB-INF/web.xml:
Elemente des Typs Context <Environment> werden markiert, wenn eine der folgenden Bedingungen zutrifft:
Es ist eine Schnellkorrektur für diese Regel im Quellenscanner verfügbar. Diese Schnellkorrektur fügt ein neues Element <env-entry> in der Datei web.xml hinzu, das das Element Context <Environment> darstellt, sofern dieses Element noch nicht in der Datei web.xml vorhanden ist. Ist der Eintrag vorhanden, wird er aktualisiert.
Wenn die Datei WEB-INF/web.xml nicht vorhanden ist, geschieht Folgendes:
Alle Elemente des Typs Context <Environment> werden markiert.
Diese Schnellkorrektur erstellt eine Datei WEB-INF/web.xml, die die entsprechenden Elemente des Typs <env-entry> enthält, wenn das Webprojekt ein Java-EE-Projekt der Version 5 oder höher ist. 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:|
<Environment 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="new Value"/> <Environment description="Auslösen, weil das Element einen anderen Typ hat" name="contextEnvString_2" override="false" type="java.lang.Integer" value="123"/> <Environment description="Nicht auslösen, weil override auf true gesetzt ist" name="contextEnvString_3" override="true" type="java.lang.Integer" value="123"/> |
Stellen Sie sich weiter vor, dass diese Datei die folgende Datei web.xml in der Anwendung hat:
|
<env-entry> <description>Trigger because of different value</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>Trigger because of different type</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>Nicht auslösen, weil override 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:
|
<env-entry> <description>Trigger because of different value</description> <env-entry-name>contextEnvString_1</env-entry-name> <env-entry-type>java.lang.String</env-entry-type> <env-entry-value>new Value</env-entry-value> </env-entry> <env-entry> <description>Trigger because of different type</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>Nicht auslösen, weil override 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ösen, weil das Element nicht vorhanden ist</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> |