Utilizzare i descrittori di distribuzione Java EE per definire i riferimenti ambiente

Questa regola contrassegna Context <Environment> elementi trovati nel file META-INF/context.xml che devono essere trasformati in <env-entry> elementi nel WEB-INF/web.xml .

Apache Tomcat consente Context <Environment> elementi da definire in queste ubicazioni:

Poiché lo strumento di migrazione potrebbe non avere accesso alla directory di configurazione di Tomcat , contrassegna solo Context <Environment> nella File META-INF/context.xml . Context <Environment> le informazioni definite nelle altre ubicazioni possono essere copiate nel file META-INF/context.xml in modo che possano essere elaborate dallo strumento.

Se esiste un WEB-INF/web.xml nel progetto web:

Context <Environment> gli elementi verranno contrassegnati in una delle seguenti condizioni:

Aggiungere un nuovo <env-entry> nel file web.xml che rappresenta il Context <Environment> se non esiste già nel web.xml . Se la voce esiste, verrà aggiornata.

Se WEB-INF/web.xml non esiste:

Tutti Context <Environment> elementi verranno contrassegnati.

Creare un WEB-INF/web.xml file che includa il file <env-entry> elementi se il progetto progetto web è Java EE 5 o superiore. La correzione automatica segnalerà un errore se il progetto web è a J2EE 1.4 o inferiore.

Ad esempio, considerare un file META-INF/context.xml con il seguente contenuto:
< span class="Code"> < Ambiente
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 = "nuovo valore " />
<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 " />

con il seguente file web.xml nell'applicazione:

< span class="Code"> < voce - invio>
<description>Trigger a causa di un valore diverso</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>

< voce - invio>
<description>Trigger a causa di un diverso tipo</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>

< voce - invio>
<description>non verrà Trigger a causa della sovrascrittura impostata su 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>

Dopo l'applicazione della correzione automatica, il file web.xml sarà aggiornato a contenere:

< span class="Code"> < voce - invio>
<description>Trigger a causa di un valore diverso</description>
<env-entry-name>contextEnvString_1</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>nuovo valore</env-entry-value>
</env-entry>

< voce - invio>
<description>Trigger a causa di un diverso tipo</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>

< voce - invio>
<description>non verrà Trigger a causa della sovrascrittura impostata su 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>

< voce - invio>
<description>Trigger perché non esiste</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>