WebServices SOAP avec Apache CXF
Introduction
De manière simplifiée, SOAP permet de faire de l'appel de procédure à
distance au dessus du protocole HTTP. Les données échangées sont au
format XML.
Apache CXF est un framwork Java qui permet de simplifier la creation de Webservices SOAP
Architechture
L'idée est de faire un package pour le client (un jar), un package
pour le serveur (un war), et un package commun (jar) aux deux qui
contiendra les interfaces et les POJO échangés entre les deux services.
Cela simplifie la création d'un client en Java, mais cela n'empêche
pas de créer un webservice simplement à partir du WSDL qui sera généré à
la demande par CXF.
Dépendances Maven pour CXF
|
|
|
Package Commun
Tout d'abord l'interface du service
|
|
Puis une classe POJO simple pour le retour. Ce n'est pas obligatoire,
on aurait pu faire un return String tout simple pour notre méthode
sayHello. |
|
Package serveur
Implémentation du service
|
|
WEB-INF/beans.xml
Ce fichier va être chargé automatiquement par Spring (dont dépend CXF), afin de déclarer nos services.
|
|
Execution
Un fois le package déployé, le WSDL du service sera disponible par
exemple à l'URL
http://localhost:8080/service.server/services/MonService?wsdl
Package Client
Le client aura besoin d'importer le package commun, qui contient la
déclaration de l'interface et les pojo partagés. Bien sur, il est
possible de générer ces pojo et cette interface à partir du WSDL, mais
ce n'est pas l'objet de cet article.
Le client est alors aussi simple que cela:
|