Utilisation d'éléments include dans les fichiers de configuration
Vous pouvez conserver l'intégralité de votre configuration dans un seul fichier server.xml ou utiliser des éléments include pour consolider des configurations à partir de fichiers distincts afin de créer la structure qui vous convient le mieux.
Pourquoi et quand exécuter cette tâche
Il est parfois plus simple de tenir à jour une configuration complexe lorsque celle-ci
est divisée en plusieurs fichiers. Exemple :
- Vous souhaitez inclure un fichier contenant des variables spécifiques à l'hôte local afin que la configuration principale reste utilisable sur différents hôtes.
- Vous voulez conserver l'ensemble de la configuration d'une application particulière dans un fichier à part, dont les versions pourront être gérées avec celles de l'application elle-même.
Exemple
Voici la syntaxe d'inclusion d'un fichier de configuration.
Vous pouvez associer l'attribut optional à la valeur true si vous voulez ignorer le fichier d'inclusion s'il est introuvable :
<include optional="true" location="chemin/nomfichier"/>
ou
<include optional="true" location="url"/>
La liste suivante indique, par ordre de priorité décroissante, les emplacements
dans lesquels un fichier inclus est recherché :
- Dans un emplacement spécifié relativement au fichier parent
- Dans le répertoire de configuration du serveur
- Dans un emplacement spécifié par un chemin absolu
- Sur un serveur Web
Pour être certain d'obtenir le comportement
voulu, tenez compte des règles de traitement appliquées aux fichiers de configuration inclus :
- Pour les services dont il n'existe qu'une seule instance, comme la journalisation ou la surveillance des applications, les entrées sont traitées par ordre d'apparition dans le fichier ; celles qui sont rencontrées plus loin dans le fichier complètent ou remplacent les entrées précédentes. Cette règle est également valable pour les instances de configuration, par exemple une configuration d'application ou de source de données, lorsque ces instances ont le même ID.
- Les instructions include peuvent être placées n'importe où dans l'élément <server />.
- Chaque fichier inclus doit contenir un élément <server /> identique à celui de son fichier de configuration parent.
- Les fichiers inclus peuvent eux-mêmes inclure d'autres fichiers.
- Chaque fichier inclus est logiquement fusionné, dans le fichier de configuration principal, à l'endroit où figure l'instruction <include /> qui y fait référence.
Dans l'exemple suivant, le fichier de configuration principal, server.xml, inclut le contenu d'un fichier de configuration nommé blogDS.xml, situé dans le répertoire des configurations partagées. Le fichier blogDS.xml contient une définition de source de données. Cette définition a été placée dans un fichier de configuration à part, afin de pouvoir être incluse dans différents fichiers server.xml et donc utilisée avec plusieurs instances de serveur.
Voici un exemple de fichier server.xml :
<server>
<featureManager>
<feature>servlet-3.0</feature>
<feature>jdbc-4.0</feature>
</featureManager>
<application id="blog" location="blog.war" name="blog" type="war"/>
<include optional="true" location="${shared.config.dir}/blogDS.xml"/>
</server>
Voici un exemple de contenu pour le fichier blogDS.xml :
<server>
<dataSource id="blogDS" jndiName="jdbc/blogDS" jdbcDriverRef="derbyEmbedded">
<properties createDatabase="create" databaseName="C:/liberty/basics/derby/data/blogDB" />
</dataSource>
<jdbcDriver id="derbyEmbedded"/>
<library>
<fileset dir="C:/liberty/basics/derby" includes="derby.jar"/>
</library>
</jdbcDriver>
</server>