Utilizaţi descriptori de implementare Java EE pentru a defini referinţe de mediu

Această regulă semnalează Context <Environment> elemente găsite în fișierul META-INF/context.xml care trebuie să fie transformate în <env-entry> elemente în WEB-INF/web.xml .

Apache Tomcat permite Context <Environment> elemente care trebuie definite în aceste locații:

Deoarece instrumentul de migrare ar putea să nu aibă acces la directorul de configurare Tomcat, acesta marchează doar Context <Environment> în META-INF/context.xml fișier. Context <Environment> informațiile definite în celelalte locații pot fi copiate în META-INF/context.xml pentru a pentru ca acesta să fie prelucrat de instrument.

Dacă există un fişier WEB-INF/web.xml în proiectul web:

Context <Environment> vor fi marcate în oricare dintre următoarele condiții:

Adăugați un nou <env-entry> în fișierul web.xml fișier care reprezintă Context <Environment> dacă acesta nu există deja în elementul web.xml fișier. Dacă intrarea există, aceasta va fi actualizată.

Dacă nu există fişierul WEB-INF/web.xml:

Toate Context <Environment> elementele vor fi marcate.

Creați un WEB-INF/web.xml fișier care include <env-entry> elemente dacă proiectul web este la Java EE 5 sau mai mare. Soluția automată va raporta o eroare dacă proiectul web se află la J2EE 1.4 sau mai jos.

De exemplu, luaţi în considerare un fişier META-INF/context.xml cu următorul conţinut:
<Environment
description="Trigger because it does not exist"
name="newEntry"
override="false"
type=" java.lang.String " value=" abc123 "/>
<Environment
description="Trigger because of different value"
name="contextEnvString_1"
override="false"
type="java.lang.String"
value="valoare nouă"/>
<Environment
description="Trigger because of different type"
name="contextEnvString_2"
override="false"
type="java.lang.Integer"
value="123"/>
<Environment
description="will not Trigger because of override set to true."
name="contextEnvString_3"
override="true"
type="java.lang.Integer"
value="123"/>

cu următorul fişier web.xml în aplicaţie:

<env-entry>
<description>Declanșare din cauza unei valori diferite</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>Declanșare din cauza tipului diferit</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>nu se va declanșa din cauza suprascrierii setate la true.</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>

După aplicarea remedierii automate, fișierul web.xml va fi actualizată pentru a conține:

<env-entry>
<description>Declanșare din cauza unei valori diferite</description>
<env-entry-name>contextEnvString_1</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>valoare nouă</env-entry-value>
</env-entry>

<env-entry>
<description>Declanșare din cauza tipului diferit</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>nu se va declanșa din cauza suprascrierii setate la true.</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>Declanșare deoarece nu există</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>