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
- 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.
- Ä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.
- 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.