Erstellen eines OSGi-Bundlefragments für Anbieterklassen

Wenn Ihre Anwendung IBM oder Anbieterklassen verwendet, die mit der JRE bereitgestellt werden, müssen Sie ein OSGi-Bundlefragment erstellen, um die Klassen im OSGi-Framework verfügbar zu machen.

Informationen zu diesem Vorgang

Ab CICS TS 5.1 gelten beim OSGi-Framework strengere Regeln dafür, welche Klassen aus der JRE geladen werden können.

Jedes Paket mit dem Präfix java wird vom OSGi-Framework wie für die Anwendung erforderlich geladen. Wenn eine Anwendung ein IBM oder Anbieterpaket verwendet, das zusammen mit der JRE bereitgestellt wird, zum Beispiel com.ibm.misc, müssen Sie ein Middleware-OSGi-Bundle erstellen, um diese Klassen für das OSGi-Framework verfügbar zu machen. Andernfalls werden Transaktionen mit dem Code AJ05 abgebrochen und ein java.lang.ClassNotFoundException-Fehler wird in das Fehlerprotokoll des JVM-Servers und CICS-Systems geschrieben.

Sie müssen diese Schritte für die CICS-Java-Klassen nicht ausführen, weil die JCICS-Klassen im OSGi-Framework automatisch verfügbar gemacht werden.

Vorgehensweise

  1. Für jedes IBM oder Anbieterpaket, das für die Anwendung erforderlich ist, müssen Sie ein OSGi-Bundlefragment zum Exportieren des Pakets erstellen. Das folgende Beispiel zeigt mögliche Inhalte des Manifests des OSGi-Bundlefragments:
    Manifest-Version: 1.0
    Bundle-ManifestVersion: 2
    Bundle-Name: Extension
    Bundle-SymbolicName: com.ibm.example.extension
    Bundle-Version: 1.0.0
    Bundle-Vendor: IBM
    Fragment-Host: system.bundle; extension:=framework
    Export-Package: com.ibm.misc
    Bundle-RequiredExecutionEnvironment: JavaSE-1.6

    Mit Fragment-Host wird definiert, dass das OSGi-Bundlefragment das Systempaket im OSGi-Framework erweitert. Das Export-Package listet die exportierten Pakete auf. In diesem Beispiel wird das Paket exportiert, das mit com.ibm.misc beginnt. Wenn Sie Eclipse verwenden, ignorieren Sie den angezeigten Fehler.

  2. Ändern Sie die Anwendung so, dass ein Import für das exportierte Paket im entsprechenden OSGi-Bundlemanifest hinzugefügt wird. Bei jedem OSGi-Bundle, das eine Klasse von einem IBM oder Anbieterpaket benötigt, muss das Paket im Manifest deklariet werden.
  3. Erstellen Sie ein CICS-Bundleprojekt für die OSGi-Bundlefragmente. Sie können ein oder mehrere OSGi-Bundlefragmente in das Projekt einschließen, abhängig davon, ob Sie den Lebenszyklus der Fragmente gemeinsam verwalten möchten. Es ist ein bewährtes Verfahren, das Middleware-Bundle von der Anwendung zu trennen, sodass Administratoren den Lebenszyklus separat in CICS verwalten können.

Ergebnisse

Sie haben ein CICS-Bundleprojekt mit einem oder mehreren OSGi-Bundlefragmenten erstellt, die Pakete aus der JRE exportieren. Nach der Implementierung dieses Middleware-Bundle kann Ihre Anwendung in einem CICS TS 5.1 JVM-Server ausgeführt werden.

Nächste Schritte

Implementieren Sie das Anwendungs- und Middleware-Paket. Sie müssen sicherstellen, dass im JVM-Profil für den JVM-Zielserver das Middleware-Paket in der Option OSGI_BUNDLES angegeben ist.