Cet exemple explique comment déclarer des services dans le fichier Blueprint d'un bundle, afin de les rendre accessibles pour les autres bundles de l'application. L'application OSGi se compose d'un bundle Web OSGi contenant un servlet qui accède à un service fourni dans un autre projet de bundle. L'application s'exécute dans WebSphere Application Server. Cet exemple constitue une introduction à l'utilisation des outils de développement d'application OSGi.
Conseil : Vous pouvez exécuter cet exemple dans WebSphere Application
Server versions 7.0, 8.0 et 8.5.
En savoir plus sur l'installation de WebSphere Application Server version 7.0 : Pour exécuter cet exemple dans WebSphere Application Server
version 7.0, vous devez installer Feature Pack for OSGi Applications
and Java™ Persistence API 2.0.
Pour installer le module de fonctions :
- Ouvrez IBM® Installation Manager.
- Cliquez sur Installer. La page Installer des packages s'ouvre.
- Dans la liste des packages, sélectionnez Environnement de test IBM WebSphere Application Server
version 7.0, puis cliquez sur Suivant.
- Lisez les contrats de licence. Acceptez ces contrats puis cliquez sur Suivant.
- Suivez les instructions prévues dans Installation Manager pour installer WebSphere Application Server version 7.0.
- Dans la liste Fonctions, assurez-vous de sélectionner Applications OSGi sous IBM
WebSphere Application Server Version 7.0 Feature Pack for OSGi Applications
and Java Persistence API 2.0.
En savoir plus sur l'installation de WebSphere Application Server version 8.0 : Pour exécuter cet exemple sur WebSphere Application
Server version 8.0, vous devez installer le serveur :
- Ouvrez IBM Installation Manager.
- Cliquez sur Installer. La page Installer des packages s'ouvre.
- Dans la liste des packages, sélectionnez IBM WebSphere Application
Server Version 8.0, puis cliquez sur Suivant.
- Lisez les contrats de licence. Acceptez ces contrats puis cliquez sur Suivant.
- Suivez les instructions d'Installation Manager pour installer WebSphere Application Server version 8.0.
En savoir plus sur l'installation de WebSphere Application Server version 8.5 : Pour exécuter cet exemple sur WebSphere Application
Server version 8.5, vous devez installer le serveur :
- Ouvrez IBM Installation Manager.
- Cliquez sur Installer. La page Installer des packages s'ouvre.
- Dans la liste des packages, sélectionnez IBM WebSphere Application
Server Version 8.5, puis cliquez sur Suivant.
- Lisez les contrats de licence. Acceptez ces contrats puis cliquez sur Suivant.
- Suivez les instructions d'Installation Manager pour installer WebSphere Application Server version 8.5.
Pour déployer votre application de compteur OSGi sur un serveur :
- Dans l'explorateur d'entreprise, développez .
- Cliquez avec le bouton droit de la souris sur CounterServlet et sélectionnez . La boîte de dialogue Exécuter sur le serveur s'ouvre.
- Cliquez sur WebSphere Application Server depuis la liste des serveurs et cliquez sur Terminer.
La chaîne greet.getText()=0 Hello World! est affichée dans le navigateur. A chaque fois que la page est rechargée, la valeur augmente.
Passez dans la vue Console () pour afficher la sortie du serveur. Une sortie réussie affiche la sortie de
CounterImpl.init(),
GreetImpl.init() et
WorldImpl.init(), en fonction des entrées de méthode d'initialisation pour les beans
CounterImpl,
GreetImpl et
WorldImpl dans le fichier Blueprint :
[7/21/10 11:42:18:109 EDT] 0000002f StepStartBLA A CWWMH0300I: Démarrage de l'application de niveau métier "WebSphere:blaname=CounterApp".
[7/21/10 11:42:19:421 EDT] 0000002f webapp I com.ibm.ws.webcontainer.webapp.WebGroupImpl WebGroup SRVE0169I: Chargement du module Web : CounterWebBundle.
[7/21/10 11:42:19:515 EDT] 0000002f WASSessionCor I SessionContextRegistry getSessionContext SESN0176I: Un nouveau contexte de session va être créé pour la clé d'application default_host/CounterWebBundle
[7/21/10 11:42:19:531 EDT] 0000002f webcontainer I com.ibm.ws.wswebcontainer.VirtualHost addWebApplication SRVE0250I: Module Web CounterWebBundle lié à default_host[*:9080,*:80,*:9443,*:5060,*:5061,*:443].
[7/21/10 11:42:19:593 EDT] 0000002f StepStartBLA A CWWMH0196I: L'application de niveau métier "WebSphere:blaname=CounterApp" a été démarrée.
[7/21/10 11:42:19:640 EDT] 0000001d SystemOut O WorldImpl.init() appelé.
[7/21/10 11:42:19:640 EDT] 00000032 SystemOut O CounterImpl.init() appelé.
[7/21/10 11:42:19:687 EDT] 00000032 SystemOut O GreetImpl.init() appelé.
Remarque : Si la sortie de CounterImpl.init(), GreetImpl.init() et WorldImpl.init() ne s'affiche pas dans la console, recherchez dans la sortie d'éventuels messages d'erreur qui seraient survenus au cours du déploiement ou du démarrage de l'application et recherchez dans les fichiers Blueprint d'éventuelles erreurs dans les définitions de service et de bean.