TP : Web Service Exercice 1 : utiliser un service Web On utilisera un des services Web disponibles sur la toile à l'adresse : http://www.webservicex.net/WS/wscatlist.aspx Cliquer sur le lien Communications puis sur SendSMSWorld On peut tester ce service en remplissant le formulaire Test proposé. Vous pouvez vous envoyer un SMS, malheureusement le résultat mettra un certain temps à vous parvenir (1 ou 2 jours). Il est intéressant d'observer la structure de la requête HTTP et du message SOAP encapsulé POST /sendsmsworld.asmx HTTP/1.1 Host: www.webservicex.net Content-Type: text/xml; charset=utf-8 Content-Length: length Nom du Service Web SOAPAction: "http://www.webserviceX.NET/sendSMS" <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <sendSMS xmlns="http://www.webserviceX.NET"> <FromEmailAddress>string</FromEmailAddress> Les données du formulaire prennent place entre ces balises <CountryCode>string</CountryCode> <MobileNumber>string</MobileNumber> <Message>string</Message> </sendSMS> </soap:Body> </soap:Envelope> Page 1 sur 5 Et de la réponse HTTP/1.1 200 OK Content-Type: text/xml; charset=utf-8 Content-Length: length <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <sendSMSResponse xmlns="http://www.webserviceX.NET"> <sendSMSResult>string</sendSMSResult> </sendSMSResponse> </soap:Body> </soap:Envelope> Exercice 2 : construire un service Web Le but de ce TP est de créer puis tester un service Web écrit en Java en utilisant l'API Java pour XML et les Web services (JAX-WS). 1. Création d'un projet Web a. créer un projet (Fichier → New Project → Web Application) b. nommer le projet : ApplicationCalculette c. vérifier que votre serveur est GlassFish V2 et que votre version de Java est Java EE 6 web d. cliquer sur "terminer" 2. Création d'un service Web a. clic droit sur le nom du projet (New → Web Service) b. nommer ce service CalculetteWS et le package ma.service.calculette c. cliquer sur "terminer" Structure actuelle de l'application Schéma du code java du service Web 3. Conception du service Web a. clic droit sur CalculetteWS (en bleu ci-dessus)(-> Add Operation) b. nommer l'opération "plus", ses paramètres "i" et "j". Le type des paramètres et le type de retour est int. c. cliquer sur "terminer" Page 2 sur 5 Création d'une opération Code source du Web service d. Modifier le code de la méthode "plus" en remplaçant return 0 par int k = i + j; return k; 4. Déploiement et test du service Web a. clic droit sur le projet (→ Deploy) b. clic droit sur CalculetteWS (→ Test Web Service) c. consulter la description WSDL du service Web d. envoyer une requête au service Web après avoir fourni une valeur aux 2 paramètres e. consulter le document XML de la requête et de la réponse SOAP Page 3 sur 5 5. Création d'une application Java cliente du service Web a. créer un projet (Fichier → New Project) b. choisir Java Application c. nommer le projet "ClientCalculette" et cliquer sur "terminer" d. clic droit sur le projet (New → Web Service Client) e. cliquer sur "Browse" (champ Project) et choisir le service Web f. double cliquer sur Main.java pour ouvrir l'éditeur de texte Page 4 sur 5 g. Compléter la méthode main h. Initialiser les variables "i" et "j" et exécuter le programme. i. Création d'une servlet Java cliente du service Web a. créer un projet (Fichier → New Project) b. choisir Web Application c. nommer le projet "ClientServletCalculette" et cliquer sur "terminer" d. clic droit sur le projet (New → Web Service Client) e. cliquer sur "Browse" (champ Project) et choisir le service Web f. clic droit sur le projet "ClientServletCalculette" choisir (New → servlet) g. nommer la servlet "ClientServlet" et le package "ma.service.calculette.client" h. clic droit sur le projet choisir (→ Properties) i. désélectionner "Deploy on save" j. clic droit sur le projet choisir (→ Properties) k. cliquer sur "run" et tapez ClientServlet dans le champ URL l. éditer la servlet et remplacer la méthode processRequest par : m. initialiser les variables i et j n. exécuter la servlet Page 5 sur 5