Verwendung von Klassenladern durch eine Anwendung konfigurieren

Sie können in der Konfiguration festlegen, ob die Anwendung und die Webmodule zum Laden von Klassen ihre eigenen oder andere Klassenlader verwenden sollen. Außerdem können Sie das erneute Laden von Klassen konfigurieren, wenn Anwendungsdateien aktualisiert werden. Klassenlader ermöglichen einer Anwendung, auf die Repositorys der verfügbaren Klassen und Ressourcen zuzugreifen.

Vorbereitende Schritte

Dieser Artikel setzt voraus, dass die Anwendung oder das Modul bereits in einem Server implementiert ist.

Die folgende Anmerkung gilt für die Referenzinformationen zu XMI-Dateien in diesem Artikel:
Unterstützte Konfigurationen Unterstützte Konfigurationen: Bei IBM® Erweiterungs- und Bindungsdateien weicht der Name der XMI- oder XML-Datei ab, je nachdem, ob Sie eine Java™ EE-Anwendung bzw. ein Java EE-Modul vor oder nach Version 5 verwenden. Eine IBM Erweiterungs- bzw. Bindungsdatei heißt "ibm-*-ext.xmi" bzw. "ibm-*-bnd.xmi". Das Platzhalterzeichen "*" steht für den Typ der Erweiterungs- oder Bindungsdatei, z. B. "app", "application", "ejb-jar" oder "web". Es gelten die folgenden Bedingungen:
  • Für eine Anwendung oder ein Modul, die bzw. das Java EE vor Version 5 verwendet, muss die Dateierweiterung ".xmi" sein.
  • Für eine Anwendung oder ein Modul, die bzw. das Java EE ab Version 5 verwendet, muss die Dateierweiterung ".xml" sein. Wenn Dateien mit der Erweiterung ".xmi" in der Anwendung oder im Modul enthalten sind, werden diese vom Produkt ignoriert.

Ein Modul von Java EE Version 5 oder einer höheren Version kann jedoch in einer Anwendung, die Dateien einer älteren Java EE-Version als Version 5 enthält, koexistieren.

Die Dateien ibm-webservices-ext.xmi, ibm-webservices-bnd.xmi, ibm-webservicesclient-bnd.xmi, ibm-webservicesclient-ext.xmi und ibm-portlet-ext.xmi können die Dateierweiterung ".xmi" weiterhin verwenden.

sptcfg

Informationen zu diesem Vorgang

Klassenlader haben Einfluss darauf, ob Ihre Anwendung und die zugehörigen Module die Ressourcen finden, die sie für eine effektive Ausführung benötigen. Sie können in der Konfiguration festlegen, ob die Anwendung und die Webmodule zum Laden von Klassen ihre eigenen oder einen übergeordneten Klassenlader verwenden sollen.

Ein Anwendungsklassenlader gruppiert EJB-Module, gemeinsam genutzte Bibliotheken, RAR-Dateien und abhängige JAR-Dateien, die einer Anwendung zugeordnet sind. JAR-Dateien für Abhängigkeiten sind JAR-Dateien, die Code enthalten, der von Enterprise-Beans und Servlets verwendet werden kann.

Der Klassenlader einer Anwendung ist dem Klassenlader einer WAR-Datei übergeordnet. Standardmäßig hat ein Webmodul einen eigenen WAR-Klassenlader, der den Inhalt des Webmoduls lädt. Der Wert für den WAR-Klassenlader eines Anwendungsklassenladers bestimmt, ob der WAR-Klassenlader oder der Anwendungsklassenlader verwendet wird, um den Inhalt des Webmoduls zu laden.

Sie können auch festlegen, ob Klassen nach der Aktualisierung von Anwendungsdateien erneut geladen werden. Wenn Sie das erneute Laden von Klassen für EJB-Module oder andere Module, die keine Webmodule sind, aktivieren, stoppt die Laufzeitumgebung des Anwendungsservers die Anwendung und startet sie erneut, damit die Anwendungsklassen geladen werden. Webmodule wie Servlets und JSP-Dateien (JavaServer Pages) werden von einem Web-Container nur dann erneut geladen, wenn die IBM Erweiterung "reloadingEnabled" in der Datei ibm-web-ext.xmi auf true gesetzt ist.

Auf der Seite Laden von Klassen und Erkennung von Dateiaktualisierungen in der Administrationskonsole können Sie die Verwendung von Klassenladern durch die Anwendung und die Webmodule konfigurieren.

Achtung: Wenn eine Anwendung aktiv ist, bewirkt die Änderung einer Anwendungseinstellung einen Neustart der Anwendung. In eigenständigen Servern wird die Anwendung nach dem Speichern der Änderung erneut gestartet. In Mehrserverprodukten wird die Anwendung erneut gestartet, wenn Sie die Änderung speichern und die Dateien auf dem Knoten, auf dem die Anwendung installiert ist, synchronisieren. Um zu steuern, wann die Synchronisation in Mehrserverprodukten stattfindet, wählen Sie auf der Seite mit den Konsoleneinstellungen die Option Änderungen mit Knoten synchronisieren ab.

Vorgehensweise

  1. Klicken Sie auf Anwendungen > Anwendungstypen > WebSphere-Unternehmensanwendungen > Anwendungsname > Laden von Klassen und Erkennung von Dateiaktualisierungen, um auf die Seite Laden von Klassen und Erkennung von Dateiaktualisierungen zuzugreifen.
  2. Geben Sie an, ob Anwendungsklassen erneut geladen werden sollen, wenn die Anwendung oder ihre Dateien aktualisiert werden.

    Standardmäßig ist das erneute Laden von Klassen nicht aktiviert. Wählen Sie Einstellungen für das erneute Laden von Klassen für Web- und EJB-Module überschreiben aus, damit Anwendungsklassen erneut geladen werden. Sie können für EJB-Module und Webmodule wie Servlets und JSP-Dateien unterschiedliche Werte angeben.

  3. Geben Sie den Zeitraum an (in Sekunden), in dem das Dateisystem der Anwendung nach aktualisierten Dateien durchsucht wird.

    Der für Abfrageintervall für aktualisierte Dateien angegebene Wert wird nur wirksam, wenn das erneute Laden von Klassen aktiviert ist. Standardmäßig wird der Wert des Attributs "Intervall für erneutes Laden" in der IBM Erweiterungsdatei (META-INF/ibm-application-ext.xmi) der Unternehmensanwendung (EAR-Datei) verwendet. Sie können für EJB-Module und Webmodule wie Servlets und JSP-Dateien unterschiedliche Werte angeben.

    Zum Aktivieren des erneuten Ladens geben Sie einen ganzzahligen Wert ein, der größer ist als null (z. B. 1 bis 2147483647).

    Wenn Sie das erneute Laden von Klassen inaktivieren möchten, geben Sie null (0) an.

  4. Geben Sie die Reihenfolge der Klassenlader für die Anwendung an.

    Die Reihenfolge der Anwendungsklassenlader gibt an, ob der Klassenlader zuerst im übergeordneten Klassenlader oder im Klassenlader der Anwendung suchen soll, um eine Klasse zu laden. Der Standardwert sieht vor, dass zuerst im übergeordneten Klassenlader und dann im Klassenlader der Anwendung gesucht werden soll, um eine Klasse zu laden.

    Wählen Sie einen der folgenden Werte für Reihenfolge der Klassenlader aus:

    Option Bezeichnung
    Mit dem übergeordneten Klassenlader geladene Klassen zuerst Diese Einstellung bewirkt, dass der Klassenlader zum Laden einer Klasse erst den übergeordneten Klassenlader durchsucht. Diese Einstellung wird standardmäßig für die Klassenlader von Development Kit und WebSphere Application Server verwendet.
    Mit dem lokalen Klassenlader geladene Klassen zuerst (übergeordneter zuletzt) Diese Einstellung bewirkt, dass der Klassenlader zum Laden einer Klasse erst den Anwendungsklassenlader durchsucht. Wenn Sie Mit dem lokalen Klassenlader geladene Klassen zuerst (übergeordneter zuletzt) angeben, kann Ihre Anwendung Klassen überschreiben, die im übergeordneten Klassenlader enthalten sind.
    Achtung: Wenn Sie Mit dem lokalen Klassenlader geladene Klassen zuerst (übergeordneter zuletzt) angeben, können Nachrichten vom Typ LinkageErrors oder ClassCastException ausgegeben werden, wenn Sie überschriebene Klassen und nicht überschriebene Klassen gemischt verwenden.
  5. Geben Sie an, ob Sie einen oder mehrere Klassenlader verwenden möchten, um die WAR-Dateien Ihrer Anwendung zu laden.

    Standardmäßig haben Webmodule eigene WAR-Klassenlader, um den Inhalt der Verzeichnisse WEB-INF/classes und WEB-INF/lib zu laden. Der Standardwert für den WAR-Klassenlader ist Klassenlader für jede WAR-Datei der Anwendung, d. h., für jede WAR-Datei wird ein eigener Klassenlader verwendet. Wenn Sie diese Einstellung auf Einzelner Klassenlader für gesamte Anwendung setzen, lädt der Anwendungsklassenlader den Inhalt des Webmoduls sowie die EJB-Module, die gemeinsam genutzten Bibliotheken, RAR-Dateien und abhängigen JAR-Dateien, die der Anwendung zugeordnet sind. Der Anwendungsklassenlader ist dem WAR-Klassenlader übergeordnet.

    Wählen Sie für Klassenladerrichtlinie für WAR-Dateien einen der folgenden Werte aus:

    Option Bezeichnung
    Klassenlader für jede WAR-Datei der Anwendung Für jede WAR-Datei wird ein anderer Klassenlader verwendet.
    Einzelner Klassenlader für gesamte Anwendung Für alle WAR-Dateien in der Anwendung wird ein einziger Klassenlader verwendet.
  6. Klicken Sie auf OK.

Ergebnisse

Die Anwendungs- bzw. Modulkonfiguration wurde geändert. Die Anwendung bzw. das eigenständige Webmodul wird erneut gestartet, damit die Änderungen wirksam werden.

Nächste Schritte

Falls die Anwendung bzw. das Modul in einem Cluster implementiert ist und Sie keine weiteren Konfigurationsänderungen vornehmen möchten, klicken Sie auf der Seite "Unternehmensanwendungen" auf Rollout der Aktualisierung durchführen, um die geänderte Konfiguration an alle Cluster-Member im Cluster weiterzugeben, auf denen die Anwendung bzw. das Modul implementiert ist. Die Option Rollout der Aktualisierung durchführen aktualisiert nacheinander die Konfigurationen der Knoten, die Cluster-Member enthalten.

Speichern Sie die Änderungen in Ihrer Verwaltungskonfiguration.

In einem Mehrserverprodukt werden die Binärdateien der Anwendung auf die Knoten übertragen, wenn die Konfigurationsänderungen im Deployment Manager mit den Konfigurationen einzelner Knoten, auf denen die Anwendung ausgeführt wird, synchronisiert werden.


Symbol, das den Typ des Artikels anzeigt. Taskartikel



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