Professional Documents
Culture Documents
htm#chap_26
Ce chapitre propose le développement de services web avec Eclipse essentiellement avec Axis avec ou sans utilisation d'un
plug-in dédié.
Eclipse 3.2.1
WTP 1.5.1
JDK 1.5_07
Axis 1.4
Tomcat 5.0
Téléchargez le fichier axis-bin-1_4.zip et le décompresser dans un répertoire du système, par exemple c:\java.
Créer une nouvelle entité de serveur si aucun serveur n'est déjà défini dans Eclipse. L'exemple de cette section va mettre
en oeuvre Tomcat 5.0.
Créer une nouvelle entité de type « Serveur/Serveur » puis cliquez sur le bouton « Suivant ».
Sélectionnez le type de serveur parmi ceux proposés puis cliquez sur le bouton « Suivant ».
Pour utiliser Tomcat, il est nécessaire de sélectionner un JDK pour permettre à Tomcat d'utiliser certains outils. Si aucun
JDK n'apparaît dans la liste déroulante, cliquez sur le bouton « JRE installés ».
Eclipse renseigne automatiquement les informations extraites à partir du JDK. Cliquez sur le bouton « OK ».
Cliquez sur le bouton « OK » puis s électionnez le JDK créé dans la liste déroulante
Cliquez sur la case à cocher « Mémoriser ma décision » puis sur le bouton « Oui »
La perspective « J2EE » s'ouvre et le projet est affiché dans la vue « Explorateur de projets »
Dans les propriétés du projet, sélectionnez « chemin de génération Java », cliquez sur l'onglet « Source », sélectionnez
dans la zone de texte « Dossier de sortie par défaut » le chemin du répertoire « classes » puis cliquez sur le bouton « OK ».
Remplacez le fichier WEBContent\WEB_INF\web.xml par celui présent dans le sous répertoire webapps\axis\WEB-INF
du répertoire d'installation d'axis.
Copiez les fichiers du sous répertoire webapps\axis\WEB-INF\lib du répertoire d'installation d'axis dans le répertoire
WEBContent\WEB-INF\lib.
Dans les propriétés du projet, sélectionnez « Chemin de génération Java » puis cliquez sur l'onglet « Bibliothèques »
Saisissez le nom de la bibliothèque, par exemple « Bibliothèque Axis » et cliquez sur le bouton « OK ».
Sélectionnez les fichiers .jar du répertoire lib et cliquez sur le bouton « Ouvrir »
Exemple :
Dans le répertoire WEB-INF du projet, créer un répertoire deploy. La création de ce répertoire n'est pas obligatoire mais
il permet de rassembler tous les fichiers de déploiement d'Axis.
Exemple :
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<service name="CalculerWS" provider="java:RPC" style="wrapped" use="literal">
<parameter name="className" value="com.jmdoudoux.test.axis.Calculer" />
<parameter name="allowedMethods" value="*" />
<parameter name="scope" value="Request" />
</service>
</deployment>
Exemple :
<undeployment xmlns="http://xml.apache.org/axis/wsdd/">
<service name="CalculerWS" />
</undeployment>
Dans la vue « Serveurs », sélectionnez le serveur Tomcat et utiliser l'option « Ajouter et supprimer des projets ... » du
menu contextuel.
Cliquez sur le bouton « Ajouter > » pour faire basculer le projet testWS dans la liste des projets configurés, puis cliquez
sur le bouton « Terminer ».
Le plus simple est de créer un script Dos qui va se charger du déploiement. Créez un fichier adminclient.bat dans le
répertoire WEB-INF/deploy de la webapp et saisissez le code de ce script :
Exemple :
@echo off
cd "C:\Documents and Settings\jumbo\workspace\testWS\WebContent\WEB-INF\deploy"
set CLASSPATH=.;..\lib\axis.jar;..\lib\axis-ant.jar;..\lib\commons-discovery-0.2.jar;
..\lib\commons-logging-1.0.4.jar;..\lib\jaxrpc.jar;..\lib\log4j-1.2.8.jar;
..\lib\saaj.jar;..\lib\wsdl4j-1.5.1.jar
java org.apache.axis.client.AdminClient -s /testWS/services/AdminService %1%.wsdd
Pour exécuter ce script dans Eclipse, il faut utiliser l'option « Outils externes / Outils externes » du menu principal
« Exécuter ».
Créez de la même façon une configuration « undeploy Calculer » qui appelle le script adminclient.bat avec l'argument
undeployCalculer.
<Admin>Done processing</Admin>
Le message d'avertissement n'est pas important pour les besoins du service web.
La réponse contient une erreur puisque les paramètres de la méthode ne sont pas fournis.
Saisissez l'url :
http://localhost:8080/testWS/services/CalculerWS?method=additionner&valeur1=10&valeur2=20
<Admin>Done processing</Admin>
Modifiez le fichier Calculer.wsdd en remplaçant style=”wrapped” par style=”document” et enregistrez les modifications.
Le format du fichier wsdl est adapté par Axis en fonction du format précisé.
Une « Web Reference » concernant le service web est ajoutée. Renommez la en CalculerWS.
Visual Studio a créé un fichier Reference.cs dans le sous répertoire Web References\CalculerWS du projet. Ce fichier
contient une classe qui fait office de proxy vers le service web. Le contenu de ce fichier est automatiquement généré par
Visual Studio à partir du wsdl du service web.
Dans la fenêtre du projet, ajouter un composant de type TextBox et un composant de type Button.
Ajouter un événement sur le clic du bouton en double cliquant dessus. L'éditeur s'ouvre sur la méthode générée.
using TestWSAxis.CalculerWS;
Exemple :
Remarque : ce code est spartiate puisqu'il ne contient aucune gestion des erreurs qui peuvent survenir dans ces traitements.
Le plug-in propose de convertir automatiquement une classe en un service web, reposant sur Axis du groupe Apache
Jakarta.
Cochez « Générer un proxy », « Tester le service web » et « Contrôler le service web » et cliquez sur le bouton « Suivant ».
Par défaut, la classe sélectionnée est utilisée. Cliquez sur le bouton « Suivant ».
Le bouton « Editer » de la partie « Sélection du déploiement côté serveur » permet de sélectionner le serveur et
l'environnement d'exécution.
Cliquez sur le bouton « Suivant » pour afficher la page « Identité du bean Java de service web » de l'assistant
Cette page permet de sélectionner les informations qui composeront le fichier .wsdl. Cliquez sur le bouton « Suivant ».
Une confirmation est demandée dans le cas d'un remplacement d'un descripteur existant.
La page « Page Proxy de service web » permet fournir des précisions sur le proxy qui sera généré. Cliquez sur le bouton
« Suivant »
Cette page permet de tester le proxy généré. Cliquez sur le bouton « Suivant »
Cette page permet de demander la publication du service web. Cliquez sur le bouton « Terminer »
La vue « Web Services Test Client » s'ouvre. Il suffit de cliquer sur une méthode dans la partie « Methods », par exemple
la méthode additionner().
La partie « Inputs » permet de saisir les valeurs des deux paramètres de la méthode sélectionnée.
Il est possible de modifier le format d'affichage de la requête et de la réponse en utilisant les listes déroulantes.
Le résultat de l'appel au service web s'affiche dans la partie « Result » de la vue « Web Services Test Client »
La vue « Explorateur de services web » permet d'obtenir des informations sur les services web.
Pour afficher cette vue, il suffit de sélectionner le fichier .wsdl du services web dans le répertoire WebContent/wsdl et
d'utiliser l'option « Services web/Tester avec un explorateur de services web ».
Le service est appelé avec les paramètres et le résultat est affiché dans la partie « Statut »
En cliquant sur le lien « Source » est est possible d'affiche la requete et la réponse SOAP.
L'option « Services web/Publier un fichier WSDL » permet d'enregistrer le service web dans un annuaire UDDI
L'option « Services web/Générer un client » permet de générer une application web pour tester le service web. Il est aussi
possible de sélectionner l'option « Nouveau/Autre » du menu contextuel du fichier .wsdl.
L'option « Contrôler le service Web » permet de lancer le Moniteur TCP/IP. Cliquez sur le bouton « Suivant »
Cliquez sur le bouton « Suivant » pour permettre à l'assistant de générer les premières entités.
Cliquez sur le bouton « Terminer » pour générer les dernières entités, publier l'application sur le serveur et ouvrir la vue
« Web Services Test Client »
L'option « Services web/Générer un squelette de bean Java » permet de générer une implémentation d'une description
d'un service web à partir d'un fichier .wsdl
Exemple :
/**
* CalculSoapBindingImpl.java
*
* This file was auto-generated from WSDL
* by the Apache Axis 1.2.1 Jun 14, 2005 (09:15:57 EDT) WSDL2Java emitter.
*/
package com.jmd.test.wtp;
Il est possible de lancer « l'Explorateur de services web » en utilisant l'option « Exécuter/Explorateur de services web »
du menu principale
Cette vue permet d'explorer trois types d'entités liées au service web :
un annuaire UDDI :
un fichier .WSIL :
un fichier .WSDL :
Il suffit de cliquer sur le lien « Parcourir » pour ouvrir une boîte de dialogue permettant de sélectionner le fichier .wsdl.
Il suffit de sélectionner le projet de l'espace de travail puis de sélectionner le fichier .wsdl de ce projet à utiliser
Il est aussi possible d'appeler un service web externe. Par exemple : http://www.dataaccess.com/webservicesserver
/conversions.wso?WSDL
Le service web est appelé avec les paramètres fournis et le résultat est affiché dans la partie « Statut ».
Eclipse 3.2.1
WTP 1.5.1
JDK 1.5_07
Axis 1.4
Tomcat 5.0
Cette section va utiliser un projet de type web dynamique nommé TestWsWTP dans lequel la cible de compilation a été
modifiée pour pointer sur le répertoire WebContent/WEB-INF/classes créé pour l'occasion.
Exemple :
package com.jmdoudoux.test.axis;
Dans la vue « Explorateur de projets », sélectionnez la classe Echo et utilisez l'option « Service web / Créer un service
web » du menu contextuel.
Il est possible de préciser le niveau de fonctionnalités pris en compte par l'assistant grâce au curseur de gauche. Cliquez
sur le bouton « Suivant ».
La boîte de dialogue suivante permet de préciser les options pour générer le fichier wsdl notamment en précisant son nom,
les méthodes de la classe qui seront proposées dans le service web et le type de service web. Cliquez sur le bouton
« Suivant »
La page suivante permet de démarrer le serveur : cliquez sur le bouton « Démarrer le serveur ». Le serveur démarre :
cliquez sur le bouton « Suivant ».
Dans l'explorateur de projets, sélectionner le fichier wsdl correspondant au service web puis utilisez l'option « Service
Web / Tester avec un explorateur de services web ».
Saisissez test comme valeur du paramètre message de type string et cliquez sur le bouton « OK ».
Dans l'explorateur de packages, sélectionnez la classe qui implémente le service web et utilisez l'option « Services web /
Générer des fichiers JSP d'exemples » du menu contextuel.
Les pages JSP de test sont générées dans un répertoire nommé « sample » suivi du nom de la classe
Saisissez une valeur pour la propriété message de la méthode et cliquez sur le bouton « Invoke »
La méthode du service web est invoquée et le résultat est affiché dans le cadre Result.