IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Apprendre à développer et déployer un service Web RESTFUL OSGI multibundle sous Eclipse et Karaf
Un tutoriel de Olivier Rozier

Le , par ce.moi7

0PARTAGES

7  0 
Bonjour,

Je vous propose un tutoriel pour développer un service web de type Rest OSGI multibundle sous Eclipse et pour le déployer dans Karaf. Cet article présente un exemple pratique ainsi que les différents moyens de le déployer sous Karaf.

Il fait suite à mon précédent tutoriel http://olivier-rozier.developpez.com...karaf-eclipse/ qui constitue la base d'un développement d'un service web OSGI destiné à être déployer sous Karaf.

Le nouvel article est disponible ici : http://olivier-rozier.developpez.com...f-multibundle/

N'hésitez pas à profiter de cette discussion pour donner vos commentaires.

A bientôt,

Olivier

Retrouver les meilleurs cours et tutoriels pour apprendre la programmation Java Web

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de Tcharl
Membre averti https://www.developpez.com
Le 16/06/2016 à 17:51
Hello Olivier

Pas mal ce petit tutoriel, bien complet!

Au niveau de mes remarques:

* Pour les services REST, tu peux te servir de l'enum MediaType.APPLICATION_XML plutôt que les chaines en dur.
* Blueprint ne vend vraiment pas du rêve: tout ce xml à la main, c'est vraiment dur à écrire puis maintenir: as-tu essayé Pax-CDI?
* Spring-Data-Jpa peut être utilisé pour la couche DAO.
* Les .project, .settings et .classpath dans le zip sont en trop: c'est fonction de l'environnement utilisateur, et généré automatiquement par m2e.
* Un exemple de commande karaf comme jdbc:list ou cxf:list-endpoints aurait été bienvenu.
* Citer Pax-Exam pour les tests d'intégration business aurait été un plus.

Ce que j'ai appris: les kars, c'est sympa! Il faut que je les mette dans mon framework!

Tu n'aurais à tout hasard pas envie de participer à l'effort sur Osgiliath enterprise framework? C'est complètement ce que tu as décris, avec des facilités/capacités en plus (Swagger, CDI, Hawtio, JMS, Camel, UI en AngularJs...).
Il reste pas mal de choses à faire, mais l'essentiel est là et fonctionne plutôt bien!

Bien joué en tout cas, et j'espère avoir de tes nouvelles.

Charlie
0  0 
Avatar de ce.moi7
Membre éprouvé https://www.developpez.com
Le 16/06/2016 à 19:10
Citation Envoyé par Tcharl Voir le message
Hello Olivier

Pas mal ce petit tutoriel, bien complet!

Au niveau de mes remarques:

* Pour les services REST, tu peux te servir de l'enum MediaType.APPLICATION_XML plutôt que les chaines en dur.
* Blueprint ne vend vraiment pas du rêve: tout ce xml à la main, c'est vraiment dur à écrire puis maintenir: as-tu essayé Pax-CDI?
* Spring-Data-Jpa peut être utilisé pour la couche DAO.
* Les .project, .settings et .classpath dans le zip sont en trop: c'est fonction de l'environnement utilisateur, et généré automatiquement par m2e.
* Un exemple de commande karaf comme jdbc:list ou cxf:list-endpoints aurait été bienvenu.
* Citer Pax-Exam pour les tests d'intégration business aurait été un plus.

Ce que j'ai appris: les kars, c'est sympa! Il faut que je les mette dans mon framework!

Tu n'aurais à tout hasard pas envie de participer à l'effort sur Osgiliath enterprise framework? C'est complètement ce que tu as décris, avec des facilités/capacités en plus (Swagger, CDI, Hawtio, JMS, Camel, UI en AngularJs...).
Il reste pas mal de choses à faire, mais l'essentiel est là et fonctionne plutôt bien!

Bien joué en tout cas, et j'espère avoir de tes nouvelles.

Charlie
Bonjour Charlie,

Je te remercie pour tes compliments.

Tu as tout à fait raison concernant l'enum. Je l'utilise d'ailleurs dans mes programmes mais comme je destinais ce tutoriel à des débutants, je préférais utiliser les chaines en dur pour mieux voir ce qu'il se passait.

La commande Karaf cxf:list-endpoints apparait dans mon précédent tuto (http://olivier-rozier.developpez.com...karaf-eclipse/) qui est vraiment un tuto de base. Mais malheureusement, je ne peux pas toutes les mettre. J'ai choisi de ne faire figurer que celles qui sont essentielles à la vérification de ce qui est fait dans le tuto.

Je suis justement en train de faire un tutoriel concernant Pax Exam pour débutant!

J'aimerais bien m'investir un peu plus pour une communauté mais je n'ai malheureusement pas beaucoup de temps.

A bientôt!

Olivier
0  0 
Avatar de egann538
Membre actif https://www.developpez.com
Le 18/12/2016 à 16:40
Merci beaucoup pour ce tutoriel très complet qui m'a sûrement fait gagner un grand nombre de soirées de tests et d'exploration.
Je me suis aussi heurté à cette difficulté de trouver des informations pertinentes pour développer une application OSGI avec annotations JPA sous Karaf ou autre. Ce qui est d'autant plus dommage que la solution est puissante.
D'autre part j'ignorais qu'il était si simple (une fois l'étape du Kar passée) de configurer une version personnalisée de Karaf.

Trois remarques pour l'amélioration du tuto:
- Tu mentionnes, pour la configuration de la database, un schéma nommé "ctm", alors que dans le code à télécharger il est nommé "ses". Ce qui fait que l'appli bugge lors de la tentative d'insertion de nouveaux éléments.
- Il m'a manqué une simple capture d'écran (que j'ai mise en PJ) de l'utilisation du plugin RestClient, afin de valider un "POST" de customer, par exemple. La notion d'URL à indiquer et de endpoint n'était pas très claire. N'étant pas habitué des requêtes REST, j'ai du fouiller un peu sur le net et essayer plusieurs commandes avant de réussir une insertion.
- Pour une raison que j'ignore, la commande cxf:list-endpoints était introuvable dans Karaf

Merci encore. @+
0  0 
Avatar de ce.moi7
Membre éprouvé https://www.developpez.com
Le 18/12/2016 à 18:20
Citation Envoyé par egann538 Voir le message
Merci beaucoup pour ce tutoriel très complet qui m'a sûrement fait gagner un grand nombre de soirées de tests et d'exploration.
Je me suis aussi heurté à cette difficulté de trouver des informations pertinentes pour développer une application OSGI avec annotations JPA sous Karaf ou autre. Ce qui est d'autant plus dommage que la solution est puissante.
D'autre part j'ignorais qu'il était si simple (une fois l'étape du Kar passée) de configurer une version personnalisée de Karaf.

Trois remarques pour l'amélioration du tuto:
- Tu mentionnes, pour la configuration de la database, un schéma nommé "ctm", alors que dans le code à télécharger il est nommé "ses". Ce qui fait que l'appli bugge lors de la tentative d'insertion de nouveaux éléments.
- Il m'a manqué une simple capture d'écran (que j'ai mise en PJ) de l'utilisation du plugin RestClient, afin de valider un "POST" de customer, par exemple. La notion d'URL à indiquer et de endpoint n'était pas très claire. N'étant pas habitué des requêtes REST, j'ai du fouiller un peu sur le net et essayer plusieurs commandes avant de réussir une insertion.
- Pour une raison que j'ignore, la commande cxf:list-endpoints était introuvable dans Karaf

Merci encore. @+
Bonjour egann538,

Je te remercie pour tes compliments et pour avoir pris le temps de réagir à mon tutoriel. J'ai effectivement passé beaucoup de temps sur des problèmes de configuration entre les différents modules et sur le fonctionnement de Karaf et je trouvais dommage que personne ne donne de tuyaux pour réaliser une telle application. Je suis heureux de t'avoir rendu service!

Je viens de modifier le code source de l'exemple afin de prendre en compte le changement de schéma. J'avais réalisé ce tutoriel sur un schema nommé "ctm" et pour m'assurer que tout fonctionnait, je l'avais tester sur un autre schéma et du coup, j'ai oublié de changer le nom de ce 2nd schéma avant de mettre en ligne. Je pense que, désormais, j'ai fait les modifications partout...

Effectivement, concernant le "POST", je n'avais pas pensé à mettre une capture d'écran pour chaque méthode REST car je pensais que les personnes qui suivaient ce tutoriel étaient connaisseurs des clients REST. Je te remercie pour avoir complété par ta capture d'écran. Ceci aidera les plus novices.

En ce qui concerne ton problème avec la commande cxf:list-endpoints, peut-être que la version de cxf que tu utilises ne comporte plus cette commande : Karaf et ses repository évoluent très vite. Du coup, peut-être que cette commande a été remplacée par une autre... Si j'ai utilisé cette commande dans le tutoriel : http://olivier-rozier.developpez.com...-karaf-eclipse , je t'avoue que je ne me souviens plus si je l'ai utilisé dans celui-ci avec la version 2.7.10 de CXF...

Je te remercie encore.

A bientôt,

Olivier
0  0