Article Tags

Mon blog

Java JAXWS - le soap facile

Created 16/02/2010 12:14

Le contexte

Pour mon boulot nous devions nous connecter à un système "legacy", disposant toutefois d'interfaces soap, à partir d'un système développé en Java. Nous avons voulu utiliser axis (2) qui est pas mal référencé sur le net ; son utilisation n'est pas toute simple (au niveau de son intégration dans une application par exemple). Du coup, je me suis reporté sur le standard jaxws (désormais natif depuis la JVM 1.6) ; et là bingo ! En quelques minutes mes classes (stub et objets du wsdl étaient générées et intégrées à mon projet). Voici un résumé très rapide de ma compréhension du fonctionnement de ce standard.

Utilisation de jaxws avec l'outil de jboss

Jboss fournit un utilitaire qui génère toutes les classes nécessaires à partir du wsdl : à la fois la classe de génération du stub mais aussi tous les objets décrits par le fichier wsdl (objets des méthodes du webservice).

JBossWS-Native stack deployed
WSConsumeTask is a cmd line tool that generates portable JAX-WS artifacts from a WSDL file.

usage: org.jboss.wsf.spi.tools.cmd.WSConsume [options] <wsdl-url>

options:
    -h, --help                  Show this help message
    -b, --binding=<file>        One or more JAX-WS or JAXB binding files
    -k, --keep                  Keep/Generate Java source
    -c  --catalog=<file>        Oasis XML Catalog file for entity resolution
    -p  --package=<name>        The target package for generated source
    -w  --wsdlLocation=<loc>    Value to use for @WebService.wsdlLocation
    -o, --output=<directory>    The directory to put generated artifacts
    -s, --source=<directory>    The directory to put Java source
    -t, --target=<2.0|2.1>      The JAX-WS specification target
    -q, --quiet                 Be somewhat more quiet
    -v, --verbose               Show full exception stack traces
    -l, --load-consumer         Load the consumer and exit (debug utility)
    -e, --extension             Enable SOAP 1.2 binding extension

Appel du webservice

On commence par construire l'objet annoté avec @WebServiceClient puis l'on appel sa méthode annotée @WebEndpoint. C'est celle-ci qui retourne notre stub (c'est à dire l'objet disposant des méthodes de même nom que celle implémentées par le serveur à l'autre bout) : normalement ce stub implémente l'interface annotée @WebService

Liste des Commentaires

Posté 02/04/2010 10:49 par +

+

Add a Comment
 

Categories

Chercher un article

Menu