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