Bereitgestellte API mit einer alternativen Version überschreiben

Wenn eine Anwendung Klassen bereitstellt, die auch in Liberty verfügbar sind (oder eine Bibliothek verwendet, die diese Klassen bereitstellt), werden standardmäßig die Klassen aus Liberty verwendet. Wenn Sie dies dahingehend ändern möchten, dass die Anwendung die alternativen Versionen dieser Klassen verwendet, muss die Anwendung in der Datei server.xml oder in einer eingeschlossenen Datei konfiguriert werden.

Informationen zu diesem Vorgang

Wenn eine Webanwendung Klassen enthält, die auch in der Laufzeitumgebung des Servers vorhanden sind, sollten Sie festlegen, welche Kopie dieser Klassen von der Anwendung verwendet werden soll. Wenn beispielsweise unterschiedliche Versionen der Klassen in der Anwendung und in der Laufzeitumgebung des Servers vorhanden sind, müssen Sie sicherstellen, dass die Version der Anwendung verwendet wird.

Standardmäßig verwenden alle Java EE-Anwendungen Klassen aus der Liberty-Laufzeitumgebung. Sie können dieses Verhalten außer Kraft setzen, indem Sie das Attribut für die Klassenladerkonfiguration delegation verwenden. Diese Konfiguration ist spezifisch für eine bestimmte Anwendung oder spezifisch für eine gemeinsam genutzte Bibliothek, die zur Verwendung durch die Anwendung ausgewählt werden kann.

Beispiel

Im folgenden Beispiel muss eine Anwendung mit dem Namen Scholar anstelle von Kopien der in Liberty verfügbaren Klassen Klassen verwenden, die sie selbst bereitstellt (oder die in einer von ihr verwendeten Bibliothek bereitgestellt werden).

  • Wenn die Klassen in die Anwendung gepackt werden, können Sie das Standarddelegierungsverhalten parentFirst mit einem classloader-Element in der Konfigurationsdatei server.xml oder einer darin eingeschlossenen Datei überschreiben:
    <application id="" name="Scholar" type="ear" location="scholar.ear">
      <classloader delegation="parentLast" />
    </application>
    Diese Angaben weisen das Anwendungsklassenladeprogramm dazu an, die Liberty-Klassen erst dann zu prüfen, wenn zunächst in der Anwendung und in den zugehörigen Bibliotheken nach einer Klasse gesucht wurde.
  • Wenn die Klassen in eine gemeinsam genutzte Bibliothek gepackt werden, fügen Sie das Attribut delegation dem Element classloader hinzu, das die Verwendung der gemeinsam genutzten Bibliothek wie folgt konfiguriert:
    <application id="" name="Scholar" type="ear" location="scholar.ear">
      <classloader delegation="parentLast" commonLibraryRef="mySharedLib"/>
    </application>
    
    <library id="mySharedLib">
      <fileset dir="${server.config.dir}/myLib" includes="*.jar" />
    </library>

Für persönliche Bibliotheken in einer Anwendung kann auch das Attribut privateLibraryRef verwendet werden. Nähere Informationen hierzu finden Sie im Abschnitt Bibliothek in mehreren Java EE-Anwendungen gemeinsam nutzen.


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_alt_api
Dateiname: twlp_classloader_alt_api.html