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.

Informationen zu diesem Vorgang

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 das Verzeichnis mylib/Alexandria im Verzeichnis servers/Academy des Verzeichnises ${WLP_USER_DIR}.

    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 Klassenladen für die Anwendung so, dass 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>
    Anmerkung: Das Element <library> akzeptiert auch ein Attribut filesetRef mit einer durch Kommas getrennten Liste von <fileset>-Element-IDs.
  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: Mit dem Element <commonLibraryRef> kann eine durch Kommas getrennte Liste mit Bibliotheks-IDs angegeben werden.
  5. Optional: Konfigurieren Sie eine weitere Anwendung so, dass sie ihren eigenen Satz von Klassen verwendet, die aus denselben JAR-Dateien geladen werden.
    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: Mit dem Element <privateLibraryRef> kann eine durch Kommas getrennte Liste mit Bibliotheks-IDs angegeben werden.

Symbol das den Typ des Artikels anzeigt. Taskartikel

Dateiname: twlp_classloader_shared_libs.html