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.
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
- Erstellen Sie im Verzeichnis servers/Academy unter dem Verzeichnis
${WLP_USER_DIR} ein Verzeichnis mylib/Alexandria .
Beispiel: wlp/usr/servers/Academy/mylib/Alexandria.
- Kopieren Sie die Dateien alexandria-scrolls.jar und commons-lang.jar in den neuen Ordner.
- 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.
- 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.
- 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.