OSGI – Episode 2
Dans l’épisode précédent, nous avons vu comment installer rapidement une plate-forme OSGI avec pax runner. Dans ce nouvel épisode, nous allons mettre en place un serveur Web avec OSGI.
OSGI n’était pas destiné aux serveurs d’applications mais peu à peu OSGI s’est introduit dans le monde J2EE. Tout d’abord par sa modularité, il a été utilisé pour modulariser les serveurs d’applications afin de les rendre moins monolythiques :
De son coté, le consortium OSGI a définit une spécification de service http permettant de gérer des pages statiques et des servlets. Ceci a du sens pour les produits embarqués voulant fournir de très simples interfaces HTTP mais cela reste peu productif pour de plus importantes applications.
Mais quel peut être l’intérêt pour OSGI de pouvoir faire fonctionner des applications Web ? Simplement de fournir une application complète!
En effet, fournir une application Web consiste à fournir une application au format WAR ou EAR, à installer un serveur d’application, puis configurer et déployer le WAR ou l’EAR. Ceci est simplement hors de porté pour 99% des particuliers et de très nombreuses entreprises. Le risque d’erreurs de configuration est aussi maximal. Fournir une application unique qui embarque son serveur HTTP est au contraire une solution élégante et moins risquée. Ceci aurait pu être possible avec J2EE mais la taille des serveurs d’applications a découragé ce type de solutions.
Suite à cet aparté, retour les mains dans le camboui. Nous allons utiliser Pax Web 0.7.0. Ce bundle est un packaging de jetty permettant l’éxécution de servlets et de JSP. Dans le répertoire pax-runner-1.2.0 obtenu dans le répertoire précédent, il suffit d’exécuter :
bin/pax-run.sh --profiles=felix.config,web,war war:mvn:org.apache.wicket/wicket-examples/1.3.0/war
Et la vérification que tout est opérationnel avec son navigateur :
http://localhost:8080/mvn_org.apache.wicket_wicket-examples_1.3.0_war/helloworld/
Impressionnant, on a une application déployée en une ligne…
Ralentit Technique :
- Pax runner installe Felix
- Pax runner installe les bundles relatifs aux profiles felix.config, web et war ( cad config admin, pax web 0.7.0 et war extender)
- Pax installe une application Web, un war modifié dans jetty
Voila pour aujourd’hui… Dans le prochain billet, nous verrons comment modifié un war pour le faire fonctionner sur le principe vu dans ce billet.