Génération d'artefacts Java pour les applications JAX-WS à partir d'un fichier WSDL

Utilisez les outils JAX-WS pour générer les artefacts Java™ requis pour développer des services Web JAX-WS lors du démarrage avec un fichier WSDL (Web Services Description Language).

Avant de commencer

Lors de l'utilisation d'une approche descendante pour le développement des services web JAX-WS (Java API for XML-Based Web Services) en démarrant avec un fichier WSDL (Web Services Description Language), vous devez obtenir l'URL (Uniform Resource Locator) 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

Vous pouvez utiliser l'outil JAX-WS, wsimport, pour traiter un fichier WSDL et générer des artefacts Java portables utilisés pour créer un service web. Les artefacts Java portables créés à l'aide de l'outil wsimport sont les suivants :
  • Interface SEI (Service endpoint interface)
  • Classe de service
  • Classe d'exception 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 disposez des artefacts Java requis pour créer un service 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 WSDL Ping exemple pour générer les artefacts portables.
  1. Copiez le fichier WSDL ping.wsdl suivant dans un répertoire temporaire.
    <?xml version="1.0" encoding="UTF-8"?>
    <!--
     * This program can be used, run, copied, modified and distributed
     * without royalty for the purpose of developing, using, marketing, or distributing.
     -->
    <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 que AIX ou Linux exécutent le source du script sur le shell parent pour qu'il hérite des variables exportées en exécutant la commande suivante :
    . ./setupCmdLine.sh  (Notice the space between the periods.)
    à partir du répertoire . /racine_serveur_app>/bin. Exécutez la commande wsimport,
    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 exemple à l'aide 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\PingStringInput.java
com\ibm\was\wssample\sei\ping\PingService.java

Le fichier ObjectFactory.java contient des méthodes de fabrique pour chaque interface de contenu Java et chaque interface d'élément Java générées dans le package ping associée. Le fichier package-info.java utilise la valeur targetNamespace et crée la structure de répertoires. Le fichier PingServicePortType.java correspond à la classe d'interface SEI générée qui contient la définition de méthode ping. Le fichier PinStringInput.java contient les valeurs de type générées JAXB, qui sont des classes Java mappées à partir des types de schéma XML. Le fichier PingService.java correspond au fichier classe de fournisseur de services généré qui est utilisé par le client JAX-WS.

Que faire ensuite

Effectuez l'implémentation de votre application de service Web en réalisant l'implémentation des JavaBeans ou des beans enterprise.

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_jaxwsfromwsdl
Nom du fichier : twbs_jaxwsfromwsdl.html