Télécharger

Download Report

Transcript Télécharger

1 ère Année Master SII – 2013/ 2014

TP2: Services Web

Création et déploiement de Services Web Java avec Axis (deuxième méthode)

I Déploiement explicite à l'aide du fichier Web Service Deployment Descriptor (wsdd).

I-1- Création du fichier .java  Nous considérons le service Calculatrice : public class } } Calculatrice return (a+b); { public int somme(int a, int b){  Enregistrer la classe sous le nom Calculatrice.java  Compiler

javac

Calculatrice.java I-2- Création d’un fichier descripteur de déploiement

wsdd.

Créer le fichier descripteur nommer

deployCalculatrice.wsdd

:

xmlns

="http://xml.apache.org/axis/wsdd/"

xmlns:java

="http://xml.apache.org/axis/wsdd/providers/java">

name

=" Calculatrice " style="java:RPC">

name

="className" value=" Calculatrice "/>

name

="allowedMethods" value="*"/> Remarques  Lignes 1et 2 : ce sont les Balises de début.  Ligne 3 : Le nom d'invocation du service, avec le mode, ici "RPC".   Ligne4 : c’est le nom de la classe compilée associée au service. Ligne5 : les autorisations d'accès au service, les méthodes à appeler. Le « * » veut dire toutes les méthodes. I-3 

Déploiement de votre service Web

  Utiliser l'utilitaire « AdminClient » du serveur « Axis » pour le déploiement (mettre deployCalculatrice.wsdd dans le répertoire axis de Tomcat) : 1/5

  Les fichiers deployCalculatrice.wsdd et Calculatrice.class doivent être dans le répertoire axis/WEB-INF/lib. Exécuter le fichier « deployServiceWSDD.bat » qui se trouve dans le répertoire « WEB INF/lib.  Accéder à votre service à l’URL : http://localhost:8080/axis/services/Calculatrice. Vous pouvez alors constater que le service a été bien déployé sur « Axis ». 

Exécution du service web par son alias

http://localhost:8080/axis/services/ Calculatrice?method= somme &a=12&b=8 Vérifier que le service est ajouté : o http://localhost:8080/axis/servlet/AxisServlet o puis List II Nous avons vu comment invoquer un service Web via le navigateur. Maintenant nous allons utiliser un autre mode de communication en utilisant le langage Java et en générant automatiquement la définition du Stub côté client. Ce mode est caractérisé par l’utilisation: 

Consommation du service Web

du

stub

côté client et du

skeleton

côté serveur. Le stub est une classe coté client et le skeleton est son homologue coté serveur.  des interfaces représentant les types des objets Java à manipuler

II-1- Récupération du fichier WSDL

Vous allez sur le navigateur, invoquer le service web Calculatrice ensuite récupérer le contenu de la page web est sauvegarder le dans le fichier Calculatrice.wsdl. Mettez ce fichier dans le dossier \webapps\axis\WEB-INF\lib" de Tomcat. Il doit être sous le même répertoire que WDSL2Java.

II-2- Utilisation du générateur WSDL2Java

Nous allons utiliser l’outil d’Axis appelé « org.apaché.axis.wsdl.WSDL2Java » qui permet la génération automatique des définitions Java côté client et côté serveur. Exécutez le fichier wsdl2java.bat qui se trouve dans le répertoire WEB- INF/lib. L'outil " WSDL2Java " génère automatiquement l'ensemble des classes et interfaces client dans un dossier "targetNamespace="http://localhost:8080/axis/services/ Calculatrice "" du descripteur " wsdl ". Pour consommer le service web, nous avons besoin des fichiers générés (Stub) par la commande wsdl2java, il faut juste importer ces fichiers dans l'application et utiliser les interfaces présentes dans ce Stub. 2/5

II-3- Définition du client Java

Maintenant nous allons écrire le client qui va appeler notre service.  Nous allons travailler sous Eclipse. Créez un nouveau projet TP2,  Créez un nouveau package et insérez les fichiers générées auparavant par la commande wsdl2java dans ce package.  Ajouter les librairies manquantes ainsi que les fichiers : mail.jar, wsdl4j.jar, commons discovéry-0.2.jar et commons-logging-1.1.3.jar.  Créer une nouvelle classe client pour invoquer le service

public class

CalculatriceClient {

public static void

main(String[] args) { // Création du service depuis le endpoint // Calculatrice

Service

correspond au nom du service dans le fichier "wsdl" Calculatrice

Service

service =

new

Calculatrice ServiceLocator(); Scanner entree =new Scanner (System.in); System.

out

.println (“Tapez deux valeurs”); int a = entree.nextInt() ; int b= entree.nextInt();

try

{ Calculatrice c = service.somme();

try

{ System.

out

.println( “la somme est “+ c.somme(a, b)); }

catch

(RemoteException e) { e.printStackTrace(); } }

catch

(ServiceException e1) { e1.printStackTrace(); } } } Une fois votre client écrit, compilez-le et exécutez-le.

5. Désactivation du service web

 Pour désactiver ce service il faut un fichier undeploy.wsdd dont le contenu est :  Puis utiliser la ligne de commande o java org.apache.axis.client.AdminClient undeploy.wsdd 3/5

 Vérifier le service est désactivé En cas d'erreur, il faut ajouter à la variable système CLASSPATH tous les fichiers .jar se trouvant dans C:\Program Files\Apache Software Foundation\Tomcat5.0\webapps\axis\ WEB-INF\lib (Valeur est adaptée en fonction de vos chemins) : 4/5

Si les librairies Axis ne sont pas spécifiées dans le classpath, vous devez le faire comme suit, selon votre version d’Axis et Tomcat, dans un fichier "classpath.bat" comme suit :

set CATALINA_HOME=C:\temp\tomcat50-jwsdp set AXIS_HOME=C:\temp\tomcat50-jwsdp\webapps\axis\WEB-INF set CLASSPATH=%CLASSPATH%;%CATALINA_HOME%\common\lib\activation.jar set CLASSPATH=%CLASSPATH%;%CATALINA_HOME%\common\lib\mail.jar set CLASSPATH=%CLASSPATH%;%AXIS_HOME%\lib\axis.jar set CLASSPATH=%CLASSPATH%;%AXIS_HOME%\lib\axis-ant.jar set CLASSPATH=%CLASSPATH%;%AXIS_HOME%\lib\jaxrpc.jar set CLASSPATH=%CLASSPATH%;%AXIS_HOME%\lib\wsdl4j-1.5.1.jar set 0.2.jar CLASSPATH=%CLASSPATH%;%AXIS_HOME%\lib\commons-discovery set CLASSPATH=%CLASSPATH%;%AXIS_HOME%\lib\commons-logging 1.0.4.jar set CLASSPATH=%CLASSPATH%;%AXIS_HOME%\lib\saaj.jar set CLASSPATH=%CLASSPATH%;%AXIS_HOME%\lib\log4j-1.2.8.jar set CLASSPATH=%CLASSPATH%;%CATALINA_HOME%\common\lib\xerces.jar set CLASSPATH=%CLASSPATH%;%CATALINA_HOME%\common\lib\servlet api.jar set CLASSPATH=%CLASSPATH%;%CATALINA_HOME%\common\lib\naming factory.jar

Exercice :

écrire un client qui consomme le service web de Google ; 5/5