Organigramme de l'Observatoire

Tutoriel Application Wrapping

Explications

Il se trouve à l'adresse suivante :

ftp://archive.eso.org/pub/vo-workshop/GWS-ApplicationWrapping/

ws-track/Subject/EuroVO_AW_WS.html

Le tutoriel Application Wrapping nous propose de regarder comment interagir avec un service web qui communique par le langage SOAP qui permet de transférer des données.

Les outils nécessaires aux exercices sont : Java, Tomcat et Axis. Les instructions pour installer le service web Axis sont également données :

Copier le dossier axis du pack Axis dans le répertoire webapps de Tomcat.

Ajouter le chemin “.../axis/WEB-INF/lib” dans la variable d'environnement CLASSPATH.

Le premier exercice proposé utilise le service Sesame du CDS. Etant donné la référence d'un objet astronomique, Sesame interroge Simbad et VizieR pour ensuite renvoyer des informations en format XML).

URL du service web Sesame : http://cdsws.u-strasbg.fr/axis/services/Sesame

Mais avant de pouvoir bénéficier de ce service, il faut récupérer les classes Java nécessaires pour interagir avec Sesame. Pour ce faire, , voici les étapes à suivre :

Récupérer et aller dans le répertoire “.../workspace/Sesame” disponible à l'adresse ftp://archive.eso.org/pub/vo-workshop/GWS-ApplicationWrapping/ws-track/ (ou sur le CD fourni lors du séminaire).

Exécuter la commande suivante :

java org.apache.axis.wsdl.WSDL2Java http://cdsws.u-strasbg.fr/axis/services/Sesame?wsdl

Axis importe alors les classes nécessaires.

Un répertoire Sesame_pkg est alors créé. Il contient quatre fichiers Java qui permettront d'accéder au service web :

Sesame.java

SesameService.java

SesameServiceLocator.java

SesameSoapBindingStub.java

Il est alors demandé de rédiger une petite application cliente en Java qui envoie la référence d'un objet à Sesame en utilisant les fonctions des classes générées.

Code source de Client.java

//import generated classes from wsdl

import java.io.*;

import Sesame_pkg.*;

public class Client {

public Client(String ref) {

try {

// locator creation

SesameService locator = new SesameServiceLocator();

// Sesame object

Sesame myO = locator.getSesame();

// resolves the name for m51 and XML result format

String result = myO.sesame(ref, "x");

System.out.println(result);

} catch (Exception e) {

System.out.println("Sesame client : " + e);

}

}

public static void main(String[] args) throws Exception {

if(args.length != 0){

System.out.println("Utilisation : java Client");

System.exit(1);

}

InputStreamReader buffer = new InputStreamReader(System.in);

BufferedReader ligne = new BufferedReader(buffer);

System.out.print("Entrer la référence d'un objet : ");

String reference = ligne.readLine();

new Client(reference);

}

}

Test du client

Après compilation et exécution du client, celui-ci demande d'entrer une référence. Voici le résultat renvoyé pour la référence “M1” :

<?xml version="1.0" encoding="UTF-8"?>

<Sesame xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:noNamespaceSchemaLocation="http://vizier.u-strasbg.fr/xml/sesame_1.xsd">

<!-- Q03616 -->

<target>M1</target>

<Resolver name="Simbad">

<INFO>from cache</INFO>

<otype>SNR</otype>

<jpos>05:34:31.96 +22:00:52.0</jpos>

<jradeg>83.6332083</jradeg>

<jdedeg>+22.0144722</jdedeg>

<refPos>1999A&amp;AS..136..571H</refPos>

<errRAmas>139</errRAmas><errDEmas>100</errDEmas>

<oname>V* CM Tau</oname>

<nrefs>2794</nrefs>

</Resolver>

</Sesame>

NOTE : Les exercices suivants proposent d'autres services web et des manipulations similaires. Le côté serveur des services web est ensuite abordé dans le tutoriel, mais n'a été que survolé car seule la partie cliente était importante pour le stage.

II

2005-08-11T09:14:58