Exercices « Web Services Java » 1 Robert Voyer
Exercices « Web Services Java » 2 Robert Voyer
Accès aux services Web « Axis »
Lancement et accès aux services web du fournisseur « Axis ».
Lancement du fournisseur de services « Axis »
Le serveur « Axis » est installé comme une application Web au sein du moteur de servlets et
de JSPs « Tomcat ». Vous devez, pour accéder aux possibilités de « Axis », activer
préalablement le serveur « Tomcat ».
Pour cela, vous double-cliquez sur :
<dossierInstallation>\Tomcat 4.1\bin\startup.bat
Accès aux services déployés
Pour vérifier la bonne installation et éventuellement accéder aux services web existants sur
« Axis », vous tapez dans un navigateur :
http://localhost:8080/axis
Ensuite, vous pouvez cliquer sur « Validate » et « View »
Exercices « Web Services Java » 3 Robert Voyer
Initiation aux Services Web « Axis »
Exercices illustrant le développement de base des Services Web sous Axis.
Exercice Service1 : un premier service simple
Un premier exercice qui affiche tout simplement le célèbre : HELLO WORLD
Dans ce premier exercice, nous allons simplement nous remettre en tête les modes de
développement d’applications Java.
Remarque : Les phases de déploiement et de publication du service que vous allez
développer sont automatisées.
Etape 1 : définition de la classe du service
La première étape consiste à définir la classe du service web qui retournera au client lchaîne
de caractères « HELLO WORLD ».
La définition de cette classe est la suivante :
public class ServiceHelloWorld {
public String message() {
return “Hello World”;
}
}
Utilisez un éditeur de texte simple (emacs sous Unix) ou NotePad sous Dos.
Attention, vous devez sauvegardez votre classe sous le fichier portant le même nom et suffixé
par « java » ! Ici, le fichier de sauvegarde sera donc : ServiceHelloWorld.java.
Etape 2 : déploiement du service par fichier « JWS »
La deuxième étape consiste à déployer le service au sein d’un fournisseur de services web.
L’environnement d’exécution et de déploiement des services web que nous utilisons est l’outil
« Axis ».
Le premier mode de déploiement sous « Axis » que nous allons mettre en œuvre est le plus
simple qui soit ; c’est le déploiement instantané par fichier « JWS ». Vous noterez qu’il n’est
pas nécessaire de compiler le source java.
Pour réaliser le déploiement, il suffit de copier le fichier « HelloWorld.java » (en le
renommant « HelloWorld.jws ») dans le domaine applicatif de « Axis ». Le domaine
application de « Axis » est :
<dossierAxis>/webapps/axis
Vous devez donc effectuer :
copy HelloWorld.java <dossierAxis>\webapps\axis\HelloWorld.jws
Vous êtes désormais en mesure d’accéder à votre service à l’URL suivante :
http://localhost:8080/axis/HelloWorld.jws
Vous devez alors constater que votre service a bien été déployé sur « Axis » en ayant en
retour la page « html » suivante :
There is a Web Service here
Click to see the WSDL
Exercices « Web Services Java » 4 Robert Voyer
Si vous cliquez sur ce dernier lien, vous verrez la définition « WSDL » (générée
automatiquement par « Axis ») de votre service web.
Etape 3 : exécution du service par fichier « JWS »
La dernière étape consiste à mettre en œuvre votre service qui est désormais accessible à
travers tout le net !
Pour exécuter une méthode de votre service et obtenir la réponse « SOAP » correspondante,
vous tapez l’expression suivante dans votre navigateur :
http://localhost:8080/axis/HelloWorld.jws?method=message
Par rapport à l’expression précédente, vous précisez ici le nom de la méthode à exécuter, sous
la forme de la valeur de l’attribut « method ».
La réponse affichée est le contenu « SOAP », c’est-à-dire un fichier « XML » dont voici un
extrait :
<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>
- <messageResponse
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<messageReturn xsi:type="xsd:string">Hello World</messageReturn>
</messageResponse>
</soapenv:Body>
</soapenv:Envelope>
Exercice Service2 : un deuxième service simple
En procédant comme précédemment, on vous demande de définir un service web qui calcule
de carré d’un nombre.
Il y a deux différence par rapport à l’exercice précédent :
Le service retourne cette fois-ci un nombre
La méthode à invoquer possède un parameter.
Pour traiter les méthodes avec paramètres, supposons que votre service possède la méthode
ayant la signature suivante :
public int calcule(int nb) ;
L’invocation sera alors réalisée de la façon suivante :
http://localhost:8080/axis/Carre.jws?method=calcule&nb=10
Vous obtiendrez la réponse suivante (toujours sous un format SOAP XML) dont voici un
extrait :
<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>
- <calculeResponse
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<calculeReturn xsi:type="xsd:int">100</calculeReturn>
</calculeResponse>
</soapenv:Body>
</soapenv:Envelope>
Exercices « Web Services Java » 5 Robert Voyer
Déploiement des Services Web « Axis »
Exercices illustrant le déploiement des Services Web sous Axis.
Dans les précédents exercices, nous avons mis en œuvre un mode de déploiement entièrement
pris en charge par « Axis ». Ce mode automatique de déploiement présente les contraintes
suivantes :
Nécessité de disposer des sources des classes dont on veut définir le ou les services. En effet,
le mode de déploiement automatique d’Axis travaille sur le source des classes Java
Impossibilité de décrire (en l’état actuel du système « Axis », mais cela pourrait évoluer par
l’introduction de méta-données dans le source des classes) des particularités de déploiement.
Ce sont pour ces raisons, que nous devons parfois réaliser un déploiement explicite. Cela
implique la définition d’un fichier particulier, appelé descripteur de déploiement du service
web.
Ce fichier porte l’extension « wsdd » pour Web Service Deployment Descriptor.
Exercice Deploiement1 : un premier déploiement simple
Nous allons reprendre l’exercice « Service1 » qui retourne la chaîne de caractères « Hello
World » et lui définir un descripteur de déploiement.
Avant de commencer, créer un nouveau dossier de travail et placez-y la définition java de
votre futur service, à savoir « HelloWorld.java ».
Etape 1 : compilation de la classe du service
La première étape consiste à compiler la classe que vous avez définie. Pour ce faire dans une
fenêtre Dos ou Shell, vous tapez : javac HelloWorld.java.
A l’issue de cette étape, vous devrez avoir dans votre dossier de travail, un nouveau fichier
« HelloWorld.class ».
Etape 2 : définition du descripteur de déploiement
Le descripteur de déploiement doit être placé dans le même dossier que le « .class »
définissant le service. Appelons ce descripteur « deploy.wsdd ». Son contenu sera
minimalement celui-ci :
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<service name="HelloService" style="RPC">
<parameter name="className" value="HelloWorld"/>
<parameter name="allowedMethods" value="*"/>
</service>
</deployment>
Expliquons les différents éléments :
Balise de début avec comme attributes les espaces de noms des balises mises en oeuvre
dans un descripteur de deployment.
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
Le nom d’invocation du service, avec le mode, ici “RPC”. Ce sera le principal mode
que nous mettrons en oeuvre.
1 / 22 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !