Bibliothek in mehreren Java EE -Anwendungen gemeinsam nutzen

Bibliotheken können von mehreren Java™ EE -Anwendungen gemeinsam genutzt werden. Alle Anwendungen können zur Laufzeit dieselben Klassen verwenden, oder jede Anwendung kann ihre eigene Kopie dieser Klassen verwenden, die von derselben Position geladen werden.

Open Liberty Die neueste Dokumentation zur Klassenladerkonfiguration für Liberty ist auf der Open Liberty Websiteverfügbar.

Informationen zu dieser Task

Im folgenden Beispiel setzt sich eine Bibliothek mit dem Namen Alexandria aus zwei Dateien zusammen:
  • alexandria-scrolls.jar und
  • commons-lang.jar
Eine Anwendung mit dem Namen Scholar und eine Anwendung mit dem Namen Student werden in einem Server mit dem Namen Academy ausgeführt, und beide Anwendungen müssen auf diese Bibliothek zugreifen.

Vorgehensweise

  1. Erstellen Sie im Verzeichnis servers/Academy unter dem Verzeichnis ${WLP_USER_DIR} ein Verzeichnis mylib/Alexandria .

    Beispiel: wlp/usr/servers/Academy/mylib/Alexandria.

  2. Kopieren Sie die Dateien alexandria-scrolls.jar und commons-lang.jar in den neuen Ordner.
  3. Konfigurieren Sie das Laden von Klassen für die Anwendung, damit die Bibliothek Alexandria geladen wird.
    Definieren Sie in der Datei server.xml oder einer eingeschlossenen Datei die Bibliothek, indem Sie den folgenden Code hinzufügen:
    <library id="Alexandria">
      <fileset dir="${server.config.dir}/mylib/Alexandria" includes="*.jar" scanInterval="5s" />
    </library>
    Hinweis: Das Element <library> kann auch ein Attribut filesetRef mit einer durch Kommas getrennten Liste von <fileset> -Element-IDs verwenden.
  4. Referenzieren Sie die Bibliothek über die Anwendung, sodass beide Anwendungen dieselbe Kopie der Bibliothek verwenden.
    Fügen Sie in der Datei server.xml oder in einer eingeschlossenen Datei den folgenden Code hinzu:
    <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>
    Anmerkung: Das Element <commonLibraryRef> kann eine durch Kommas getrennte Liste mit Bibliotheks-IDs verwenden.
  5. Optional: Konfigurieren Sie eine andere Anwendung so, dass ihre eigene Gruppe von Klassen aus denselben JAR-Dateien geladen wird.
    Wenn eine andere Anwendung mit dem Namen Spy beispielsweise eine eigene Kopie der Klassen benötigt, können dieselben physischen Dateien auf der Platte verwendet werden. Fügen Sie in der Datei server.xml oder in einer eingeschlossenen Datei den folgenden Code hinzu:
    <application id="spy" name="Spy" type="war" location="spy.war">
      <classloader privateLibraryRef="Alexandria" />
    </application>
    Anmerkung: Das Element <privateLibraryRef> kann eine durch Kommas getrennte Liste mit Bibliotheks-IDs verwenden.