Fourniture de bibliothèques globales à l'usage de toutes les applications Java EE
Vous pouvez fournir des bibliothèques globales qui peuvent être utilisées par n'importe quelle application Java™ EE. Il suffit pour cela de placer les fichiers JAR de ces bibliothèques dans un répertoire spécifique et de déclarer l'utilisation des bibliothèques globales dans la configuration du chargeur de classe de chaque application. Toutefois, les bibliothèques globales ne peuvent pas être utilisées par d'autres applications, par exemple les applications OSGi.
Pourquoi et quand exécuter cette tâche
Dans le répertoire utilisateur spécifié par la variable WLP_USER_DIR, les emplacements dans lesquels vous pouvez placer votre bibliothèques globales sont les suivants :
- ${shared.config.dir}/lib/global
- ${server.config.dir}/lib/global
Avertissement : Dès lors que
vous utilisez des bibliothèques globales, vous avez tout intérêt à configurer
un élément <classloader> pour chacune
de vos applications. La spécification Servlet impose aux applications de partager
le même chargeur de classe de bibliothèque globale dans la hiérarchie (ou chaîne de parenté)
des chargeurs de classe qui les précède. Cela revient à se priver de la possibilité de configurer différemment le chargement des classes
de chaque application. Ainsi, les applications sont plus susceptibles
d'avoir des effets durables sur les classes chargées dans Liberty
ainsi que les unes sur les autres ; le risque de problèmes de
cohérence d'espace occupé par les classes entre applications est plus
élevé et tend à s'aggraver au fil du temps, à mesure que des
fonctions sont ajoutées et retirées sur un serveur en cours
d'exécution. Ces risques n'existent pas pour les applications
qui ont un élément <classloader> dans leur
configuration, car la séparation des comportements de chargement des classes est alors
préservée.
Exemple
Dans l'exemple ci-après, une application nommée Scholar est configurée pour utiliser d'une part une bibliothèque commune appelée Alexandria, d'autre part la bibliothèque 'global'.
Dans le fichier server.xml ou dans un fichier
inclus par celui-ci, activez l'utilisation de la bibliothèque 'global' par l'application
en ajoutant le code suivant :
<application id="" name="Scholar" type="ear" location="scholar.ear">
<classloader apiTypeVisibility="spec" commonLibraryRef="Alexandria, global" />
</application>
La bibliothèque globale peut aussi
être désignée explicitement dans la configuration, au moyen d'un élément library ayant l'ID spécial global. Exemple :
<library id="global">
<fileset dir="/chemin/du/dossier" includes="*.jar" />
</library>