Les bibliothèques peuvent être partagées entre plusieurs applications Java™ EE . Elles peuvent toutes utiliser les mêmes classes à l'exécution ou bien chacune peut utiliser
ses propres copies des classes partagées, qu'elle charge depuis un emplacement commun.
La documentation la plus récente sur la configuration de chargeur de classe pour Liberté est disponible sur le site Site Web Open Liberty.
A propos de cette tâche
Dans l'exemple suivant, une bibliothèque appelée
Alexandria se compose
de deux fichiers :
- et alexandria-scrolls.jar
- commons-lang.jar
Deux applications, respectivement nommées
Scholar et
Student, sont exécutées sur le serveur
Academy et ont
toutes les deux besoin d'accéder à la bibliothèque Alexandria.
Procédure
- Créez un répertoire mylib/Alexandria dans le répertoire servers/Academy sous le répertoire
${WLP_USER_DIR} .
Par exemple : wlp/usr/servers/Academy/mylib/Alexandria.
- Copiez les fichiers alexandria-scrolls.jar et commons-lang.jar dans le nouveau dossier.
- Configurez le chargement des classes pour l'application afin que la bibliothèque
Alexandria soit chargée.
Dans le fichier
server.xml ou dans un fichier
inclus par celui-ci, définissez la bibliothèque en ajoutant le code suivant :
<library id="Alexandria">
<fileset dir="${server.config.dir}/mylib/Alexandria" includes="*.jar" scanInterval="5s" />
</library>
Remarque: l'élément <library> peut également prendre un attribut filesetRef avec une liste d'ID d'élément <fileset> séparés par des virgules.
- Référencez la bibliothèque depuis les applications afin que toutes les
deux partagent un unique exemplaire de cette bibliothèque.
Dans le fichier
server.xml ou dans un fichier
inclus par celui-ci, ajoutez le code suivant :
<application id="scholar" name="Scholar" type="ear" location="scholar.ear">
<classloader commonLibraryRef="Alexandria" />
</application>
<application id="student" name="Student" type="ear" location="student.ear">
<classloader commonLibraryRef="Alexandria" />
</application>
Remarque: l'élément <commonLibraryRef> peut prendre une liste d'ID de bibliothèque séparés par des virgules.
- Facultatif: Configurez une autre application pour qu'elle ait son propre ensemble de classes chargées à partir des mêmes fichiers JAR.
Par exemple, si une autre application nommée
Spy a besoin de sa propre copie
des classes, les mêmes fichiers physiques sur le disque peuvent
être utilisés. Dans le fichier
server.xml ou dans un fichier
inclus par celui-ci, ajoutez le code suivant :
<application id="spy" name="Spy" type="war" location="spy.war">
<classloader privateLibraryRef="Alexandria" />
</application>
Remarque: l'élément <privateLibraryRef> peut prendre une liste d'ID de bibliothèque séparés par des virgules.