Globale Bibliotheken für alle Java EE-Anwendungen bereitstellen

Sie können globale Bibliotheken bereitstellen, die von allen Java™ EE-Anwendungen verwendet werden können. Dazu kopieren Sie die JAR-Dateien für diese Bibliotheken in ein globales Bibliotheksverzeichnis und legen dann die Verwendung globaler Bibliotheken in der Klassenladerkonfiguration für jede Anwendung fest. Allerdings können die globalen Bibliotheken nicht von anderen Anwendungen, z. B. OSGi-Anwendungen, verwendet werden.

Informationen zu diesem Vorgang

Im Benutzerverzeichnis, das mit der Umgebungsvariablen WLP_USER_DIR angegeben ist, befinden sich die folgenden Positionen, an denen Sie globale Bibliotheken speichern können:
  • ${shared.config.dir}/lib/global
  • ${server.config.dir}/lib/global
Wenn beim Start einer Anwendung Dateien an diesen Positionen vorhanden sind und für diese Anwendung kein <classloader>-Element konfiguriert ist, verwendet die Anwendung diese Bibliotheken. Wenn eine Klassenladerkonfiguration vorhanden ist, werden diese Bibliotheken nur verwendet, wenn die globale Bibliothek explizit referenziert wird.
Achtung: Wenn Sie globale Bibliotheken verwenden, empfiehlt es sich, auch ein Element <classloader> für jede Anwendung zu konfigurieren. Die Servletspezifikation erfordert, dass alle Anwendungen denselben Klassenlader für globale Bibliotheken in ihrer übergeordneten Kette für Klassenlader verwenden. Damit wird die Trennung der Klassenlader für jede Anwendung, die ansonsten möglich ist, aufgehoben. Deshalb sind Anwendungen anfälliger dafür, sich auf die Dauer gegenseitig sowie die in Liberty geladenen Klassen zu beeinflussen. Zusätzlich sind Konsistenzprobleme des Klassenraums zwischen Anwendungen wahrscheinlicher, insbesondere, wenn im Laufe der Zeit Features im aktiven Server hinzugefügt bzw. entfernt werden. Keine dieser Überlegungen gilt für Anwendungen, die ein Element <classloader> in ihrer Konfiguration enthalten, weil in diesem Fall die Trennung beibehalten wird.

Beispiel

Im folgenden Beispiel wird eine Anwendung mit dem Namen Scholar für die Verwendung einer allgemeinen Bibliothek mit dem Namen Alexandria und darüber hinaus für die Verwendung der globalen Bibliothek konfiguriert.

Aktivieren Sie in der Datei server.xml oder in einer eingeschlossenen Datei die globale Bibliothek für eine Anwendung, indem Sie den folgenden Code hinzufügen:
<application id="" name="Scholar" type="ear" location="scholar.ear">
  <classloader apiTypeVisibility="spec" commonLibraryRef="Alexandria, global" />
</application>
Die Einstellungen für die globale Bibliothek kann auch explizit als Element "library" mit der Sonder-ID global konfiguriert werden. Beispiel:
<library id="global">
  <fileset dir="/Pfad/zum /Ordner" includes="*.jar" />
</library>

Symbol das den Typ des Artikels anzeigt. Taskartikel



Symbol für Zeitmarke Letzte Aktualisierung: 01.12.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-libcore-mp&topic=twlp_classloader_global_libs
Dateiname: twlp_classloader_global_libs.html