Partage d'une bibliothèque entre plusieurs applications Java EE

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.

Open Liberty 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

  1. 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.

  2. Copiez les fichiers alexandria-scrolls.jar et commons-lang.jar dans le nouveau dossier.
  3. 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.
  4. 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.
  5. 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.