Déploiement d`un web service SOAP sur Tomcat

Transcription

Déploiement d`un web service SOAP sur Tomcat
Déploiement d’un web service
SOAP sur Tomcat
Novembre 2016
L’objectif de ce document est d’expliquer comment créer sa première
application distribuée composée d’un serveur et d’un client qui communiquent
avec le protocole SOAP.
Ce document explique :
1. les outils à télécharger et installer pour développer et déployer une
telle application. Nous travaillerons avec l’IDE Eclipse et le langage
java,
2. les différentes étapes pour créer son propre service Web (utilisant
SOAP) avec Eclipse et tomact,
3. comment déployer l’application en local et sur un serveur Tomcat,
4. comment invoquer le serveur à partir d’un client phyton.
Téléchargement des outils
1. Télécharger Eclipse IDE for Java EE Developers
2. Télécharger Tomcat 7 (http://tomcat.apache.org/download-70.cgi).
a. Pour MAC, vous pouvez consulter ce lien
https://www.youtube.com/watch?v=wIbJ7tc5oGE
youtube:
Création d’un web service avec Eclipse et Tomcat
1. Dans Eclipse, créer un nouveau projet : New -> Project -> Web ->
Dynamic Web Project
2. Nommez
votre
projet
avec
1
votre
nom
de
famille
1. Sous Target runtime, choisir « New Runtime » et spécifier le dossier
Tomcat téléchargé au préalable pour le « Tomcat installation
directory »
2. Créez une nouvelle classe
YOUR_NAME.com.web.service
dans
src
dans
le
package
3. Ecrire le code suivant dans votre fichier (ne pas oublier de sauvegarder
le fichier, lors de la création du web service, eclipse ne le sauvegarde
pas automatiquement)
public class HelloWorld {
public String toUpper (String s){
return s.toUpperCase();
}
public String toLower (String s){
return s.toLowerCase();
}
}
4. Lancer le web service -> Clic droit sur le fichier classe -> Web Services
-> Create Web Service. Sous « Service implementation », choisir
« Start service » (choix par défaut) et modifier la scroll bar sous
« Client type » pour générer un « Test client » (cf. capture d’écran
2
suivante). Ne pas oublier de cocher « Publish the Web service » &
« Monitor the web service ».
5. Arrivé à ce stade, Eclipse doit lancer le serveur Tomcat avec votre web
service. Il doit aussi générer le client(FAMILY_NAMEClient). Lorsque
l’opération est achevée, Eclipse exécute le client.
3
6. On peut maintenant sélectionner les méthodes et les essayer. Par
exemple toLower
Déploiement du web service sur un serveur Tomcat
Maintenant que le service est créé et testé en local, on peut l’exporter et le
déposer sur un serveur Tomcat pour pouvoir y accéder.
1. Dans Eclipse, sélectionner votre serveur SOAP (projet Eclipse) et
exporter un fichier .war : Export -> Web -> WAR file
2. Aller sur le serveur tomcat http://86.119.30.210:8080/manager/html
(login : student, password : student) et déployer le .war -> WAR file to
deploy -> votre fichier war -> Deploy. Une fois cette étape réalisée,
vous pouvez voir votre web service dans la liste. Votre wsdl est
disponible
sur
ce
lien :
http://86.119.30.210:8080/YOUR_NAME/services/HelloWorld?wsdl
3. Vous pouvez aussi générer automatiquement un client via le web (par
exemple
http://www.service-repository.com/client/start)
en
lui
fournissant l’adresse URL du wsdl
4. Il est possible d’invoquer ce service via la commande curl. Pour le
faire, il faut créer une enveloppe soap avec la méthode à invoquer et
l’envoyer. Exemple : Enveloppe soap qui invoque la méthode toLower
sur le texte « LOWER ME PLEASE » :
4
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<toLower xmlns="http://service.web.com.FAMILY_NAME">
<s>LOWER ME PLEASE</s>
</toLower>
</soapenv:Body>
</soapenv:Envelope>
Ensuite, la commande curl à envoyer est la suivante : curl --header
"Content-Type:text/xml;charset=utf-8" --header "SOAPAction:toLower" --data
@SOAP_ENVELOPE_FILENAME
http://86.119.30.210:8080/
FAMILY_NAME /services/HelloWorld
Client python soap
Il est aussi possible d’écrire un client python pour le même serveur Java
développé précédemment. De nombreuses librairies existent, par exemple,
suds.
1. Installation de suds : sudo pip install suds
2. Le client est très simple à écrire :
5