Vous êtes sur la page 1sur 11

TP-web services

Installation d’Axis 2 :
Le répertoire tools contient les outils nécessaires :

- Installez jdk-6

- Installez apache-tomcat-5.5.27.exe

- Copier axis2-1.4.1-war.zip et l’extraire dans le répertoire webapps de tomcat et redémarrez


Tomcat. Visitez la liste des services disponibles (accueil Axis2/ cliquez sur Services).

Dans votre navigateur mettez dans la barre d’adresse l’URI «http://localhost:8080/axis2/»


Tester un service :
Cliquez sur « Services«.

Cliquez sur le service Version.

Que remarquez-vous ?

Installation des Plugins Eclipse


Décompressez Eclipse.

Vous avez dans le répertoire tools\plugins les plugins suivants :

Axis2_Service_Archiver_1.3.0.rar

Installation

Décompactez le contenu des deux fichiers dans le dossier "eclipse/plugins"

Lancez eclipse (s’il est déjà lancé relancer le).


Création d'un Web Service
La méthode utilisée ici est la méthode Bottom-Up. En effet on part de la création d'une classe
Java pour l'exposer ensuite en tant que Web Service en créant son WSDL. Les plugins Eclipse
de Axis2 vont permettre de déployer ce Web Service.

Créez un projet JavaProject nommé « premierWebservice »

Sous le répertoire src du projet créez un package ws.example


Création de la classe Java

User.java

package ws.example;

public class User {


int id;
String name;
String address;

public User(int id, String name, String address) {


super();
this.id = id;
this.name = name;
this.address = address;
}

public String getAddress() {


return address;
}

public void setAddress(String address) {


this.address = address;
}

public int getId() {


return id;
}

public void setId(int id) {


this.id = id;
}

public String getName() {


return name;
}

public void setName(String name) {


this.name = name;
}

UserService.java

package ws.example;

import java.util.ArrayList;

public class UserService {


public User getUser() {
return new User(14, "sami", "15 Toto titi");
}

public ArrayList getUsers() {


ArrayList userList = new ArrayList();
userList.add(new User(13, "titi", "skl"));
return userList;
}

Déploiement du Web Service

Appuyez sur Alt+Shift+N ou File > New > Other et Sélectionnez : Axis2 Service Archiver
Indiquez le path où se trouvent vos fichiers .class dans votre workspace sur Eclipse :

En général sous « votre workspace\votre projet\bin »

Dans notre cas « ….workspace\premierWebservice\bin » et cliquez sur next.

Cochez la case « Skip WSDL » pour générer un nouveau WSDL :

Si vous avez des bibliothèques externes (dans notre cas non donc next) :

Rajoutez les bibliothèques externes a votre projet - EX : mysql, Lucene, ...

Cochez la case « Generate Services.xml automatically » :


Renseignez le Service Name et le Class Name de votre Service puis cliquez sur le bouton
Load pour charger les méthodes de votre classe Java :

Renseignez le Path de Axis2 de la manière suivante : ~/webapps/axis2/WEB-INF/services


Puis nommez votre service.
Puis cliquez sur "finish", votre Web Service est correctement déployé.

Pour récupérer le WSDL généré, vous pouvez y accéder via cette adresse :
http://localhost:8080/axis2/services/listServices

Cette page liste tous les Web Services qui sont déployés au sein d'axis2.

Puis cliquez sur le nom de votre Web Service pour avoir le wsdl :
Générer le client du web service
Dézipper le fichier tools \axis2-1.4.1-bin.zip dans un répertoire, par exemple sous c:\ .

A partir du WSDL, il est possible de générer du code client pour appeler facilement le web
service

Positionner la variable d’environnement AXIS2_HOME


o Sous Windows, Bouton droit sur le poste de travail > Avancé > Variables
d’environnement > Nouvelle variable système (Nom de la variable: AXIS2_HOME,
Valeur de la variable: C:\axis2-1.3bin)
Ouvrir une console de commande et aller dans le répertoire C:\axis2-1.3\bin:

cd C:\axis2-1.3\bin

Créer un répertoire « client » sous c:\test.


Lancer la console (boutons windows+R puis cmd)
Lancer la commande suivante:

wsdl2java.bat –uri
http://localhost:8080/axis2/services/PremierWebService?wsdl -o
c:\test\client\

http://localhost:8083/axis2/services/voteService?wsdl

Le paramètre uri spécifie l’adresse du WSDL du web service et le paramètre o spécifie le


chemin où générer le code client

Par défaut, le code généré se trouve dans un répertoire src suivi du nom de
package du web service, dans notre cas, le code est généré dans
c:\test\client\

Sous eclipse créez un nouveau projet JAVA nommez le Client.


Ajouter les fichiers .java générés sous le src de ce nouveau projet.
(Il faut déplacer tout le répertoire ws qui deviendra un package une fois
sous src)
Maintenant il faut relier notre client à la librairie axis2 pour qu’il puisse utiliser le stub
généré :

Clique droit sur le dossier du projet Client puis « properties ».

A gauche choisissez « JavaBuildPath » puis à droite l’anglais « Libraries »

Cliquer sur « Add External Jars » puis parcourir jusqu’au répertoire lib sous le répertoire
C:\axis2-1.3\ .

Faite un ctrl-a puis entrer. En fin OK.


Ajouter au package ws.example du client une nouvelle classe java nommé Monclient.

package ws.example;

import java.rmi.RemoteException;

import ws.example.PremierWebServiceStub.*;

public class Monclient {

/**
* @param args
* @throws RemoteException
*/
public static void main(String[] args) throws RemoteException {
PremierWebServiceStub stub =new
PremierWebServiceStub("http://localhost:8080/axis2/services/PremierWebServi
ce");

GetUserResponse rep =stub.getUser();


User u =rep.get_return();
System.out.println(u.getId());
System.out.println(u.getAddress());
}

Tester : Clique droit sur « Monclient » puis « run As »  javaApplication.