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

Plusieurs applications Java™ EE peuvent partager une même bibliothèque. 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.

Pourquoi et quand exécuter cette tâche

Dans l'exemple suivant, une bibliothèque appelée Alexandria se compose de deux fichiers :
  • 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 dossier mylib/Alexandria sous le répertoire servers/Academy qui se trouve sous le répertoire ${WLP_USER_DIR}.

    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 de l'application afin de charger la bibliothèque Alexandria.
    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> admet également un attribut filesetRef avec une liste d'ID d'éléments <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> admet également une liste d'ID de bibliothèques séparés par des virgules.
  5. Facultatif : Configurez une autre application de sorte qu'elle utilise son propre jeu de classes chargé à 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> admet également une liste d'ID de bibliothèques séparés par des virgules.

Icône indiquant le type de rubrique Rubrique Tâche

Nom du fichier : twlp_classloader_shared_libs.html