PNG - 2.8 ko

PNG - 6.9 ko

Tutoriel web services : CXF + Spring + maven

Maîtrisez la valeur ajoutée du framework Apache CXF pour le développement et le déploiement de vos services web. Comprenez la valeur ajoutée du couplage Spring / CXF pour vos développement de services web. Enfin, gérez vos dépendances et la génération de vos livrables avec Maven 2.

Ce tutoriel est fourni par Objis, spécialiste formation JAVA depuis 2005.

Liens utiles

- + de 100 tutoriaux java/jee Objis
- Tutoriel et formation Web Services
- Web Services (bottom-up) avec Eclipse / Axis2
- Specs WS-Addressing
- WS-Adressing avec CXF
- WS-Security avec CXF
- WS-ReliableMessaging avec CXF (config, Exemple sous Jboss)

Formation Architecture Java

Soyez prêt pour des projets ambitieux : formation architecture Java Objis

PNG - 31.2 ko
programme-detaille-formation-architecture-java-objis

Programme

- Bonne pratique : couplage Spring / Apache CXF
- Bonne pratique : intégration Apache CXF à un développement J2ee
- Bonne pratique : coder appel web service dans couche service Spring
- Bonne pratique : gestion dépendances (jars) cxf, automatisation build et création livrable war avec maven.

Prérequis

- Installation Apache CXF

¨Programme

- Contexte
- Partie 1 : Création du web service
- Partie 2 : intégration Spring / CXF
- Partie 3 : build maven
- Partie 4 : création de la livraison
- Partie 5 : déploiement web service
- Partie 6 : test
- Partie 7 : intégration dans projet Spring MVC

Contexte

Valeur ajoutée cxf+serveur pour déploiement ws

Dans le tutoriel ’création web service avec java 6’ , la publication du service web était gérée par une classe spécifique. De plus le web service n’était pas multithread.

CXF, couplé à un serveur d’application (Ex : Tomcat) va nous permettre de nous dispenser d’une classe spécifique pour publier notre web service. De plus le web service sera accessible par plusieurs clients simultanés.

Votre mission

Dans le cadre d’une architecture applicative basée sur Spring, vous devez permettre dans la coucche service l’appel à un web service.

INFO : voir le tutoriel Spring N°8 : introduction Spring MVC , pour plus d’éléments techniques.

Partie 0 : création projet web spring sous eclipse

- Installez Tomcat 6
- Installez Eclipse Entreprise (Ex : galileo)
- Intégrez tomcat dans eclipse
- Installez le plugin Spring IDE
- Créez un projet web dynamique eclipse : demospringwebservices
- Donnez au projet la ’nature Spring’ afin de bénéficier des assistants comme celui pour création du fichier de définition des beans Spring
- Ajoutez à eclipse le plugin Maven m2eclipse (http://m2eclipse.sonatype.org/update)
- Donnez au projet la ’nature maven’, afin de synchroniser dépendances maven/eclipse

Partie 1 : création du service web

Interface

PNG - 6.5 ko
tutoriel-web-service-cxf-spring-maven-1

- Expliquez

Implémentation

PNG - 15.7 ko
tutoriel-web-service-cxf-spring-maven-2

- Expliquez

domaine métier

PNG - 21.2 ko
tutoriel-web-service-cxf-spring-maven-3

- Expliquez l’annotation JAXB @XmlRootElement

Partie 2 : intégration Spring / CXF

Un des avantages du framework CXF est sa bonne intégration avec le framework Spring.

Dans cette partie vous allez :
— créez le fichier de configuration de Spring ApplicationContext.xml
— configurez le fichier web.xml de l’application pour l’intégration de l’application avec Spring.

Fichier AppliCationContext.xml

- A l’aide de l’assistant de création de fichier de beans, créez le fichier WEB-INF\ApplicationContext.xml

PNG - 8.4 ko
tutoriel-web-service-cxf-spring-maven-4

- Ajoutez le namespace jaxws , qui permettra par exemple de déclarer notre service web à publier

PNG - 10.7 ko
tutoriel-web-service-cxf-spring-maven-5

- Ajoutez le code de déclaration de notre service web

PNG - 21.2 ko
tutoriel-web-service-cxf-spring-maven-6

- 

PNG - 22.7 ko
tutoriel-web-service-cxf-spring-maven-7

- Expliquez

Fichier web.xml

- Ajoutez au fichier web.xml les éléments permettant de charger le conteneur spring.

PNG - 24.3 ko
tutoriel-web-service-cxf-spring-maven-8

- Expliquez le rôle de la servlet org.apache.cxf.transport.servlet.CXFServlet

Partie 3 : build maven

- Analysez le contenu du fichier pom.xml suivant.

En particulier, expliquez la section des dépendences :

PNG - 11 ko
tutoriel-web-service-cxf-spring-maven-8bis

Quelle est la valeur ajoutée de Maven dans notre projet ?

Voici l’arborescence du projet .

PNG - 20.5 ko
tutoriel-web-service-cxf-spring-maven-12

Partie 4 : création de la livraison

- Lancez : mvn clean install

Après quelques secondes durant lesquels maven rapatrie en local les dépendences du projet, vous obtenez le résultat suivant :

PNG - 5 ko
tutoriel-web-service-cxf-spring-maven-9

Partie 5 : déploiement

- Lancez tomcat
- déposez la livraison dans le répertoire webapps de tomcat

PNG - 5.3 ko
tutoriel-web-service-cxf-spring-maven-10

- Analysez les logs console de tomcat

Parmi les ligne de log, remarquez les lignes suivantes :

PNG - 6.2 ko
tutoriel-web-service-cxf-spring-maven-11

- Expliquez.

- Avec le navigateur, allez à l’adresse suivant : http://localhost:8080/demandeformation-1.0-SNAPSHOT/

PNG - 35.5 ko
tutoriel-web-service-cxf-spring-maven-13

CXF nous informe qu’un service web a été publié et est disponible

- Analysez le WSDL du service web :

PNG - 73.9 ko
tutoriel-web-service-cxf-spring-maven-14

Partie 6 : Client

Analysez le fichier client-beans suivant :

PNG - 14.7 ko
tutoriel-web-service-cxf-spring-maven-17

- Expliquez

- Analysez le code de la classe cliente :

PNG - 20.4 ko
tutoriel-web-service-cxf-spring-maven-15

- Lancer la commande suivante : mvn exec:java -Dexec.mainClass=com.objis.demowebservice.client.Client

- Expliquez

PNG - 29.6 ko
tutoriel-web-service-cxf-spring-maven-16

Projet eclipse

Zip - 5.5 Mo
demospringwebservices

Partie 7 : intégration dans projet Spring

Intégrez le code client dans le projet Spring MVC (tutoriel 8 Spring MVC Objis).

Zip - 4.8 Mo
correction-tutoriel8-springg-mvc-partie10-annotations-controleur-spring25

où mettre le code du cleint web service ?

Conclusion

Dans ce tutoriel, vous avec mis en oeuvre Spring, Apache CXF et maven pour le développement, déploiement et test d’un service web.

Formation Architecture Java

Soyez prêt pour des projets ambitieux : formation architecture Java Objis

PNG - 31.2 ko
programme-detaille-formation-architecture-java-objis
Objis sponsor