Über eine Java EE -Anwendung auf APIs anderer Anbieter zugreifen

Standardmäßig haben Java™ EE -Anwendungen keinen Zugriff auf die in Libertyverfügbaren APIs anderer Anbieter. Zum Aktivieren dieses Zugriffs muss die Anwendung in der Datei server.xml oder in einer eingeschlossenen Datei konfiguriert werden.

Open Liberty Die neueste Dokumentation zur Klassenladerkonfiguration für Liberty ist auf der Open Liberty Websiteverfügbar.

Informationen zu dieser Task

Im folgenden Beispiel benötigt eine Anwendung namens Scholar Zugriff auf die APIs anderer Anbieter, die in Libertyverfügbar sind.

Die Anwendung verwendet eine allgemeine Bibliothek mit dem Namen Alexandria. Diese Bibliothek befindet sich im Verzeichnis ${server.config.dir}/mylib/Alexandria.

Probleme vermeiden: APIs anderer Anbieter bleiben nach einem Upgrade möglicherweise nicht kompatibel. Weitere Informationen finden Sie unter Liberty externals support.

Vorgehensweise

  1. Konfigurieren Sie das Klassenladen für die Anwendung so, dass die Anwendung auf die APIs anderer Anbieter zugreifen kann.

    Der Standardwert für das Attribut apiTypeVisibility des Elements classloader ist spec, ibm-api, api, stable. Dabei steht spec für APIs für öffentliche Spezifikationen, die sowohl für die Kompilierung als auch für die Laufzeit verfügbar sind. ibm-api steht für APIs, die in Libertyverfügbar sind. Der Wert api steht für öffentliche APIs, die für die Kompilierung und die Laufzeit verfügbar sind und stable steht für Spezifikations-APIs anderer Anbieter, die standardmäßig für die Kompilierung und die Laufzeit verfügbar sind. Wird third-party in das Attribut apiTypeVisibility des Elements classloader eingeschlossen, sind APIs anderer Anbieter verfügbar.

    Konfigurieren Sie in der Datei server.xml oder in einer eingeschlossenen Datei die Sichtbarkeit der API-Typen, indem Sie den folgenden Code hinzufügen:
    <application id="scholar" name="Scholar" type="ear" location="scholar.ear">
      <classloader apiTypeVisibility="spec, ibm-api, stable, third-party" commonLibraryRef="Alexandria" />
    </application>

    Wenn einem API-Typ das Präfix + oder - hinzugefügt wurde, wird er in der Standardgruppe der API-Typen hinzugefügt bzw. entfernt. Das Präfix +third-party führt zu spec, ibm-api, api, stable, third-party. Das Präfix "-api" hat als Ergebnis spec, ibm-api, stable.

    Konfigurieren Sie in der Datei server.xml oder in einer eingeschlossenen Datei die Sichtbarkeit der API-Typen, indem Sie den folgenden Code hinzufügen:
    <application id="scholar" name="Scholar" type="ear" location="scholar.ear">
      <classloader apiTypeVisibility="+third-party, -api" commonLibraryRef="Alexandria" /> 
    </application>
  2. Wenn die Anwendung allgemeine Bibliotheken verwendet, definieren Sie diese Bibliotheken für die Verwendung derselben Einstellung für die Sichtbarkeit der API-Typen.
    Fügen Sie in der Datei server.xml oder in einer eingeschlossenen Datei den folgenden Code hinzu:
    <library id="Alexandria" apiTypeVisibility="spec, ibm-api, stable, third-party">
      <fileset dir="${server.config.dir}/mylib/Alexandria" includes="*.jar" scanInterval="5s" />
    </library>