Barre Formation IN2P3
École franco-maghrébine 2003 WebServices 13-17 octobre 2003

Travaux pratiques

Précédent

tp1d

Suivant

Enoncé :

Créer un client pour chaque WS écrits précédemment.

Vous pouvez essayer d'appeler les WS des autres postes de travail.

Aide :

Utilisez la documentation axis.

Il faut configurer votre environnement pour compiler les clients WS.

Vous pouvez créer un fichier "setenv.bat" dans "tps" avec le contenu suivant :

rem initialisation du CLASSPATH
set AXIS_HOME=C:\axis
set AXIS_LIB=%AXIS_HOME%\lib
set DOM4J_HOME=C:\dom4j
set DOM4J_LIB=%DOM4J_HOME%
set XERCES_HOME=C:\xerces
set XERCES_LIB=%XERCES_HOME%

set AXISCLASSPATH=%AXIS_LIB%\axis.jar;%AXIS_LIB%\commons-discovery.jar;%AXIS_LIB%\commons-logging.jar
set AXISCLASSPATH=%AXISCLASSPATH%;%AXIS_LIB%\jaxrpc.jar;%AXIS_LIB%\saaj.jar;%AXIS_LIB%\log4j-1.2.8.jar
set AXISCLASSPATH=%AXISCLASSPATH%;%AXIS_LIB%\wsdl4j.jar

set CLASSPATH=%CLASSPATH%;%AXISCLASSPATH%
set CLASSPATH=%CLASSPATH%;%XERCES_LIB%\xml-apis.jar;%XERCES_LIB%\xercesImpl.jar;%XERCES_LIB%\xercesSamples.jar
set CLASSPATH=%CLASSPATH%;%DOM4J_LIB%\dom4j-full.jar

Dom4j est une librairie utilisée dans la suite du tp.

Xerces est un parseur xml utilisée dans la suite du tp.

Pour installer ces produits, présents sur le cd-rom, utiliser la même procédure que axis (en excluant le déploiement dans Tomcat).

Ne pas oublier d'exécuter cette commande dans l'invite de commandes à chaque fois que nécessaire.

Correction :

Contenu du fichier tp1d/CarteDeVisiteClient.java.

package tp1d;

import org.apache.axis.client.*;

import javax.xml.namespace.QName;

public class CarteDeVisiteClient {
    public static void main(String [] args) {
        try {

            String endpointURL = "http://localhost:8080/axis/CarteDeVisite.jws";

            Service  service = new Service();
            Call     call    = (Call) service.createCall();

            call.setTargetEndpointAddress( new java.net.URL(endpointURL) );
            call.setOperationName( new QName("CarteDeVisite", "carteDeVisite") );
            call.setReturnType( org.apache.axis.encoding.XMLType.XSD_STRING );

            String ret = (String) call.invoke( new Object[] { } );

            System.out.println("R‚sultat : " + ret);
        } catch (Exception e) {
            System.err.println(e.toString());
        }
    }
}

Contenu du fichier tp1d/CarteDeVisiteClient2.java.

package tp1d;

import org.apache.axis.client.*;

import javax.xml.namespace.QName;

public class CarteDeVisiteClient2 {
    public static void main(String [] args) {
        try {

            String endpointURL = "http://localhost:8080/axis/services/CarteDeVisite2";

            Service  service = new Service();
            Call     call    = (Call) service.createCall();

            call.setTargetEndpointAddress( new java.net.URL(endpointURL) );
            call.setOperationName( new QName("CarteDeVisite2", "carteDeVisite") );
            call.setReturnType( org.apache.axis.encoding.XMLType.XSD_STRING );

            String ret = (String) call.invoke( new Object[] { } );

            System.out.println("R‚sultat : " + ret);
        } catch (Exception e) {
            System.err.println(e.toString());
        }
    }
}

Ouvrir un invite de commandes dans le dossier "tps".

javac tp1d/*.java
java tp1d.CarteDeVisiteClient
java tp1d.CarteDeVisiteClient2

École franco-maghrébine 2003 WebServices 13-17 octobre 2003