Dieses Beispiel veranschaulicht, wie Sie Services in der Blueprint-Datei eines Bundles deklarieren, sodass andere Bundles in der Anwendung darauf zugreifen können. Die OSGi-Anwendung besteht aus einem OSGi-Web-Bundle, das ein Servlet enthält, das auf einen Service zugreift, der in einem anderen Bundleprojekt zur Verfügung gestellt wird. Die Anwendung wird unter WebSphere Application Server ausgeführt.Dieses Beispiel ist eine Einführung zur Verwendung der OSGi-Anwendungsentwicklungstools.
Tipp: Sie können dieses Beispiel unter
WebSphere Application Server Versionen 7.0, 8.0 und 8.5 ausführen.
Weitere Informationen zur Installation von WebSphere Application Server Version 7.0: Zum Ausführen dieses Beispiels unter WebSphere Application Server Version 7.0 müssen Sie "Feature Pack for OSGi Applications and Java™ Persistence API 2.0" installieren. Gehen Sie wie folgt vor, um das Feature-Pack zu installieren:
- Öffnen Sie IBM® Installation
Manager.
- Klicken Sie auf Installieren. Die Seite Pakete installieren wird geöffnet.
- Wählen Sie in der Paketliste IBM WebSphere Application Server Version 7.0
Testumgebung aus und klicken Sie anschließend auf Weiter.
- Lesen Sie die Lizenzvereinbarungen. Akzeptieren Sie die Lizenzvereinbarungen und klicken Sie auf Weiter.
- Befolgen Sie die Anweisungen im Installation Manager zur Installation von WebSphere
Application Server Version 7.0.
- Stellen Sie sicher, dass Sie in der Liste "Features" OSGi Applications unter IBM WebSphere Application Server Version 7.0 Feature
Pack for OSGi Applications and Java Persistence API 2.0 auswählen.
Weitere Informationen zur Installation von WebSphere Application Server Version 8.0: Zum Ausführen dieses Beispiels unter
WebSphere Application Server
Version 8.0 müssen Sie den Server installieren:
- Öffnen Sie IBM Installation
Manager.
- Klicken Sie auf Installieren. Die Seite Pakete installieren wird geöffnet.
- Wählen Sie in der Paketliste IBM WebSphere Application
Server Version 8.0 aus und klicken Sie dann auf Weiter.
- Lesen Sie die Lizenzvereinbarungen. Akzeptieren Sie die Lizenzvereinbarungen und klicken Sie auf Weiter.
- Befolgen Sie die Anweisungen im Installation Manager zur Installation von WebSphere
Application Server Version 8.0.
Weitere Informationen zur Installation von WebSphere Application Server Version 8.5: Zum Ausführen dieses Beispiels unter WebSphere Application Server Version 8.5 müssen Sie den Server installieren:
- Öffnen Sie IBM Installation
Manager.
- Klicken Sie auf Installieren. Die Seite Pakete installieren wird geöffnet.
- Wählen Sie in der Paketliste IBM WebSphere Application Server Version 8.5 aus und klicken Sie dann auf Weiter.
- Lesen Sie die Lizenzvereinbarungen. Akzeptieren Sie die Lizenzvereinbarungen und klicken Sie auf Weiter.
- Befolgen Sie die Anweisungen im Installation Manager zur Installation von WebSphere
Application Server Version 8.5.
Gehen Sie wie folgt vor, um Ihre OSGi-Zähleranwendung in einem Server zu implementieren:
- Blenden Sie im Enterprise-Explorer die Einträge ein.
- Klicken Sie mit der rechten Maustaste auf CounterServlet und wählen Sie aus. Der Dialog "Auf Server ausführen" wird geöffnet.
- Klicken Sie auf WebSphere Application Server in der Liste der
Server und klicken Sie auf Fertigstellen.
Die Zeichenfolge greet.getText()=0 Hello World! wird im Browser angezeigt. Der Wert erhöht sich mit jedem erneuten Laden der Seite.
Wechseln Sie zur Ansicht "Konsole" (), um die Ausgabe vom Server anzuzeigen. Ein erfolgreiches Ergebnis zeigt die Ausgabe der Methoden
CounterImpl.init(),
GreetImpl.init() und
WorldImpl.init() an, basierend auf den Initialisierungsmethodeneinträgen für die Beans
CounterImpl,
GreetImpl und
WorldImpl in der Blueprint-Datei:
[7/21/10 11:42:18:109 EDT] 0000002f StepStartBLA A CWWMH0300I: Die Geschäftsanwendung "WebSphere:blaname=CounterApp" wird gestartet.
[7/21/10 11:42:19:421 EDT] 0000002f webapp I com.ibm.ws.webcontainer.webapp.WebGroupImpl WebGroup SRVE0169I: Das Webmodul wird geladen: CounterWebBundle.
[7/21/10 11:42:19:515 EDT] 0000002f WASSessionCor I SessionContextRegistry getSessionContext SESN0176I: Es wird ein neuer Sitzungskontext für den Anwendungsschlüssel default_host/CounterWebBundle erstellt.
[7/21/10 11:42:19:531 EDT] 0000002f webcontainer I com.ibm.ws.wswebcontainer.VirtualHost addWebApplication SRVE0250I: Das Webmodul CounterWebBundle wurde an default_host[*:9080,*:80,*:9443,*:5060,*:5061,*:443] gebunden.
[7/21/10 11:42:19:593 EDT] 0000002f StepStartBLA A CWWMH0196I: Die Geschäftsanwendung "WebSphere:blaname=CounterApp" wurde erfolgreich gestartet.
[7/21/10 11:42:19:640 EDT] 0000001d SystemOut O WorldImpl.init() called.
[7/21/10 11:42:19:640 EDT] 00000032 SystemOut O CounterImpl.init() called.
[7/21/10 11:42:19:687 EDT] 00000032 SystemOut O GreetImpl.init() called.
Anmerkung: Wenn die Ausgabe der Methoden CounterImpl.init(), GreetImpl.init() und WorldImpl.init() nicht in der Konsolenausgabe angezeigt werden, prüfen Sie die Ausgabe auf Fehlernachrichten, die während der Implementierung oder beim Starten der Anwendung aufgetreten sein können. Prüfen Sie anschließend die Blueprint-Dateien auf mögliche Fehler in den Bean- oder Servicedefinitionen.