You are on page 1of 5

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 youtube:
https://www.youtube.com/watch?v=wIbJ7tc5oGE

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 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 dans src dans le package
YOUR_NAME.com.web.service

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 » :

<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 :

You might also like