Développement d'un client JAX-WS à partir d'un fichier WSDL

Les outils JAX-WS (Java™ API for XML-Based Web Services) prennent en charge la génération d'artefacts Java. Vous devez développer des clients de services Web JAX-WS statiques lors du démarrage avec un fichier WSDL.

Avant de commencer

Lorsque vous utilisez une approche de développement descendante pour le développement de services Web JAX-WS en démarrant avec un fichier WSDL, vous devez connaître l'URL du fichier WSDL.

[Windows][z/OS]S'il s'agit d'un fichier local, l'URL est du type suivant : file:unité:\chemin\nom_fichier.wsdl.

[Linux][AIX][HP-UX][Solaris][IBM i]S'il s'agit d'un fichier local, l'URL est du type suivant : file:/chemin\nom_fichier.wsdl.

Vous pouvez également spécifier des fichiers locaux à l'aide du chemin d'accès au système de fichiers absolu ou relatif.

Pourquoi et quand exécuter cette tâche

Le modèle de programmation client statique pour JAX-WS est appelé client Dynamic Proxy. Le client Dynamic Proxy appelle un service Web reposant sur une interface SEI fournie. Après la création du proxy, l'application client peut appeler les méthodes sur le proxy, tout comme une implémentation standard de ces interfaces. Pour des clients du service Web JAX-WS utilisant le modèle de programmation dynamic proxy, utilisez l'outil JAX-WS wsimport pour traiter un fichier WSDL et générez des artefacts Java portables qui sont utilisés pour créer un client du service Web. Créez les artefacts Java portables suivants en utilisant l'outil wsimport :
  • Interface SEI (Service endpoint interface)
  • Classe de service
  • Classe d'exception qui est mappée à partir de la classe wsdl:fault (le cas échéant)
  • Valeurs générées de type JAXB (Java Architecture for XML Binding), qui sont des classes Java mappées à partir de types de schéma XML.
Configurations prises en charge Configurations prises en charge: Les outils de ligne de commande wsimport, wsgen, schemagen et xjc ne sont pas pris en charge sur la plateforme z/OS. Leur fonctionnalité est assurée par les outils d'assemblage fournis avec WebSphere Application Server s'exécutant sur la plateforme z/OS. Pour plus d'informations sur ces outils de ligne de commande, reportez-vous aux outils de ligne de commande pour les applications JAX-WS.sptcfg
Pratiques recommandées Pratiques recommandées: WebSphere Application Server fournit des outils JAX-WS (Java API for XML-Based Web Services) et JAXB (Java Architecture for XML Binding). Les outils de ligne de commande wsimport, wsgen, schemagen et xjc se trouvent dans le répertoire app_server_root\bin\ de WebSphere Application Server Traditional.Les commandes xjc et schemagen se trouvent dans le répertoire app_server_root\jaxb\bin\ du profil Liberty. Il peut arriver que les artefacts générés par les outils fournis par WebSphere Application Server et le kit de développement Java SE prennent en charge les mêmes niveaux de spécifications. En général, les artefacts générés par les outils JDK sont compatibles avec d'autres environnements d'exécution conformes. Toutefois, il est recommandé d'utiliser les outils fournis avec ce produit pour effectuer une intégration transparente au sein de l'environnement WebSphere Application Server et pour bénéficier des fonctions qui peuvent être prises en charge uniquement dans WebSphere Application Server. Pour profiter des outils JAX-WS et JAXB V2.2, utilisez les outils fournis avec le serveur d'applications qui se trouvent dans le répertoire racine_serveur_app\bin\.bprac

Outre l'utilisation des outils à partir de la ligne de commande, vous pouvez appeler ces outils JAX-WS à partir des environnements de génération Ant. Utilisez la tâche Ant com.sun.tools.ant.WsImport à partir de l'environnement de génération Ant pour appeler l'outil wsimport. Pour fonctionner correctement, la tâche Ant doit être appelée par le script ws_ant.

Procédure

Exécutez la commande wsgen pour générer les artefacts de client portables. L'outil wsimport se trouve dans le répertoire racine_serveur_app\bin\.
[Windows]
racine_serveur_app\bin\wsimport.bat wsdl_URL 
[AIX][HP-UX][Linux][Solaris]
racine_serveur_app/bin/wsimport.sh wsdl_URL
[IBM i]
racine_serveur_app/bin/wsimport wsdl_URL
(Facultatif) Utilisez les options suivantes avec la commande wsimport :
  • Utilisez l'option -verbose pour voir une liste des fichiers générés lorsque vous exécutez la commande.
  • L'option -keep permet de conserver les fichiers Java générés.
  • L'option -wsdlLocation permet de spécifier l'emplacement du fichier WSDL.
    Pratiques recommandées Pratiques recommandées: La procédure recommandée pour vous assurer que vous produisez un fichier EAR de client de service compatible avec d'autres systèmes consiste à conditionner le document WSDL dans le module d'application comme un fichier JAR (Java archive) ou un fichier WAR (web archive). Vous pouvez indiquer un URI relatif pour l'emplacement du fichier WSDL en utilisant l'attribut d'annotation -wsdllocation. Par exemple, si votre fichier MyService.wsdl se trouve dans le répertoire META-INF/wsdl/, exécutez ensuite l'outil wsimport et utilisez l'option -wsdllocation pour spécifier la valeur à employer pour l'emplacement du fichier WSDL. Ceci garantit que les artefacts générés contiennent les informations -wsdllocation correctes, requises lorsque l'application est chargée sur la console d'administration, par exemple :
    wsimport -keep -wsdllocation /META-INF/wsdl/MyService.wsdl
    bprac
  • Utilisez l'option -b si vous utilisez des personnalisations de WSDL ou de schéma pour spécifier les fichiers de liaisons externes qui contiennent vos personnalisations.

    Vous pouvez personnaliser les liaisons dans le fichier WSDL pour activer les pièces jointes ou les mappages asynchrones. Pour générer les interfaces asynchrones, ajoutez la déclaration de liaison enableAsyncMapping de personnalisation côté client à l'élément wsdl:definitions ou dans un fichier de liaison externe qui est défini dans le fichier WSDL. Utilisez la déclaration de liaison enableMIMEContent dans votre fichier de liaisons de serveur ou le client personnalisé pour activer ou désactiver les règles de mappage mime:content par défaut. Pour plus d'informations sur les déclarations de liaison personnalisées, voir le chapitre 8 de la spécification JAX-WS.

Pour plus d'informations sur la commande et les options supplémentaires qui peuvent être spécifiées, voir la rubrique relative à la commande wsimport.

Résultats

Vous avez les artefacts Java générés pour créer un client JAX-WS pouvant appeler des services web JAX-WS. Pour plus d'informations sur les paramètres et la syntaxe de la commande wsimport, voir la documentation relative à la commande wsimport pour les applications JAX-WS.

Exemple

L'exemple suivant présente comment la commande wsimport est utilisée pour le traitement du fichier ping.wsdl exemple afin de générer des artefacts portables.
  1. Copiez le fichier ping.wsdl suivant dans un répertoire temporaire.
    <?xml version="1.0" encoding="UTF-8"?>
    <!--
     * Ce programme peut être utilisé, exécuté, copié, modifié et distribué
     * sans paiement d'une redevance aux fins de développement, d'utilisation, de marketing ou de distribution.
     -->
    <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    	xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    	xmlns:tns="http://com/ibm/was/wssample/sei/ping/"
    	xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="PingService"
    	targetNamespace="http://com/ibm/was/wssample/sei/ping/">
    	<wsdl:types>
    		<xsd:schema
    			targetNamespace="http://com/ibm/was/wssample/sei/ping/"
    			xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    
    
    			<xsd:element name="pingStringInput">
    				<xsd:complexType>
    					<xsd:sequence>
    						<xsd:element name="pingInput" type="xsd:string" />
    					</xsd:sequence>
    				</xsd:complexType>
    			</xsd:element>
    		</xsd:schema>
    	</wsdl:types>
    	<wsdl:message name="pingOperationRequest">
    		<wsdl:part element="tns:pingStringInput" name="parameter" />
    	</wsdl:message>
    	<wsdl:portType name="PingServicePortType">
    		<wsdl:operation name="pingOperation">
    			<wsdl:input message="tns:pingOperationRequest" />
    
    		</wsdl:operation>
    	</wsdl:portType>
    	<wsdl:binding name="PingSOAP" type="tns:PingServicePortType">
    		<soap:binding style="document"
    			transport="http://schemas.xmlsoap.org/soap/http" />
    		<wsdl:operation name="pingOperation">
    			<soap:operation soapAction="pingOperation" style="document" />
    			<wsdl:input>
    				<soap:body use="literal" />
    			</wsdl:input>
    		</wsdl:operation>
    	</wsdl:binding>
    	<wsdl:service name="PingService">
    		<wsdl:port binding="tns:PingSOAP" name="PingServicePort">
    			<soap:address
    				location="http://localhost:9080/WSSampleSei/PingService" />
    		</wsdl:port>
    	</wsdl:service>
    </wsdl:definitions>
  2. Exécutez la commande wsimport à partir du répertoire racine_serveur_app\bin\.
    [Windows]
    app_server_root\bin\wsimport.bat -keep -verbose ping.wsdl
    [Linux][AIX][HP-UX][Solaris]Les systèmes d'exploitation tels qu'AIX ou Linux placent le script sur le shell parent afin qu'il hérite des variables exportées en exécutant la commande suivante :
    . ./setupCmdLine.sh  (Notez l'espace entre les points.)
    à partir du répertoire . /racine_serveur_app>/bin. Exécutez la commande wsimport suivante :
    app_server_root/bin/wsimport.sh -keep -verbose ping.wsdl 
    [IBM i]
    app_server_root/bin/wsimport -keep -verbose ping.wsdl
Après la génération des fichiers de modèle à partir de la commande wsimport, les fichiers suivants sont générés :
com\ibm\was\wssample\sei\ping\ObjectFactory.java
com\ibm\was\wssample\sei\ping\package-info.java
com\ibm\was\wssample\sei\ping\PingServicePortType.java
com\ibm\was\wssample\sei\ping\PingService.java
com\ibm\was\wssample\sei\ping\PingStringInput.java

Les fichiers ObjectFactory.java, PingService.java, et PingServicePortType.java sont les fichiers de classes Java générés à utiliser pour réaliser un package des artefacts Java avec votre implémentation client dans un fichier d'archive Java (JAR) ou dans un fichier WAR.

Que faire ensuite

Effectuez l'implémentation du client.

Icône indiquant le type de rubrique Rubrique de tâche



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_jaxwsclientfromwsdl
Nom du fichier : twbs_jaxwsclientfromwsdl.html