L'assistant de services Web vous aide à créer un bean squelette à partir d'un document WSDL existant. Le bean squelette contient des méthodes qui correspondent aux opérations décrites dans le document WSDL. Lors de la création du bean, chaque méthode est dotée d'une implémentation triviale que vous pouvez remplacer en modifiant le bean.
Avant de commencer
Prérequis :
- Si vous utilisez WebSphere Application Server, il est fortement recommandé de démarrer le serveur avant d'exécuter l'assistant de services Web car le démarrage de WebSphere Application Server peut prendre plusieurs minutes selon la vitesse de votre ordinateur. Pour démarrer le serveur, sélectionnez-le dans la vue Serveurs (Fenêtre > Afficher la vue > Serveurs), puis cliquez avec le bouton droit de la souris et sélectionnez Démarrer.
- Créez ou détectez et importez un document WSDL dans un projet.
Vous pouvez utiliser un fichier WSDL qui contient un élément de service.
Pourquoi et quand exécuter cette tâche
Pour créer un bean Java™ squelette à partir d'un document WSDL en utilisant l'environnement d'exécution
WebSphere JAX-WS :
Procédure
- Passez à la perspective Java EE (Fenêtre > Ouvrir la perspective > Java EE).
- Dans la vue Explorateur d'entreprise, sélectionnez le fichier WSDL que vous avez créé ou importé.
- Cliquez sur Fichier > Nouveau > Autre. Sélectionnez Services Web pour afficher les divers assistants de services Web. Sélectionnez l'assistant de service Web.
Cliquez sur Suivant.
- Page Services Web : sélectionnez Service Web de bean Java descendant comme type de service Web. Vous pouvez aussi procéder comme suit :
- Faites glisser le curseur à gauche de l'illustration pour indiquer jusqu'à quelle étape
du développement du service Web vous souhaitez aller. Cette opération définit plusieurs valeurs par défaut dans les panneaux restants de l'assistant.
- Développement : développe la définition WSDL et l'implémentation du service Web. Inclut des tâches telles que la création des packages qui contiendront le code généré, les fichiers WSDL, les descripteurs de déploiement et les fichiers Java, le cas échéant.
- Assemblage : garantit que le projet qui va héberger le service Web est associé à un fichier EAR lorsque le serveur d'application cible le demande.
- Déploiement : Création du code de déploiement pour le service.
- Installation : installation et configuration du module Web et des fichiers EAR sur le serveur cible. Si des modifications des noeuds finaux du fichier WSDL sont requises, elles sont apportées à ce stade.
- Démarrage : Démarrage du serveur une fois le service installé sur le serveur.
- Test : Permet l'accès à différentes options de test du service, comme l'utilisation du client de service générique, l'explorateur de services Web ou les exemples de page JSP.
- Sélectionnez votre environnement d'exécution de serveur : le serveur par défaut s'affiche.
Pour déployer votre service sur un serveur différent, cliquez sur le lien du serveur et spécifiez un autre serveur.
Cette tâche prend en charge les environnements d'exécution de serveur suivants :
- WebSphere Application
Server version 7.0 ou ultérieure
- WebSphere Application
Server Liberty Profile version 8.5.5
- Sélectionnez votre environnement d'exécution de service Web : l'environnement d'exécution par défaut s'affiche. Pour déployer votre service dans l'environnement d'exécution IBM® WebSphere JAX-WS, cliquez sur le lien de l'environnement d'exécution et sélectionnez-le dans la fenêtre qui s'ouvre.
- Sélectionnez le projet de service et le projet EAR de service : le projet sélectionné dans votre espace de travail s'affiche. Seuls les projets Web pour lesquels la facette Java 5.0, Java 6.0 ou Java 7.0 est activée sont pris en charge. Pour sélectionner un projet et un fichier EAR différents, cliquez sur le lien du projet ou entrez un nom et autorisez l'assistant à créer un projet pour vous. Vérifiez que le projet sélectionné comme projet Web client est différent du projet de service Web, sinon le service
sera remplacé par les artefacts générés du client.
Dans le cas des services Web JAX-WS, le service et le client peuvent partager le même
fichier EAR.
- Pour créer un client, sélectionnez le type de proxy à générer et répétez les étapes 1 à 4 pour le client. Le client peut être créé ultérieurement en suivant les étapes décrites dans Génération d'un client de service Web à partir d'un document WSDL avec l'environnement d'exécution IBM WebSphere JAX-WS.
- Contrôle du service Web : le trafic du service Web est envoyé via le
Moniteur TCP/IP, ce qui vous permet de surveiller le trafic SOAP généré par le
service Web et de tester la conformité de ce trafic à la norme WS-I. Vous pouvez aussi configurer manuellement un moniteur TCP/IP comme décrit dans la rubrique Utilisation
du moniteur TCP/IP pour tester les services Web.
- Page Configuration de services Web descendants WebSphere JAX-WS :
- Dossier de sortie : entrez l'emplacement dans lequel le squelette Java est généré ou acceptez la valeur par défaut.
- Package cible : entrez le nom du package pour le squelette Java généré ou acceptez la valeur par défaut.
- Activer le style encapsuleur : active le mappage de style encapsuleur de WSDL
vers Java. Pour les documents WSDL qui implémentent la mise en forme "document/littéral" avec le style de paramètre Wrapped (encapsulé), un
élément racine est déclaré dans le schéma XML et est utilisé comme encapsuleur d'opération pour un
flux de messages. Il existe des définitions d'élément d'encapsuleur
séparées pour la demande et la réponse. L'élément dont le nom est le même que celui de l'opération (l'élément encapsuleur) est divisé pour que chacun de ses éléments de contenu devienne un paramètre de la signature de méthode Java.
- Générer des classes JAXB sérialisables : dans WebSphere Application Server and WebSphere
Application Server Liberty Profile version 8.5.5, lorsque vous activez la facette Java 6, vous pouvez choisir de générer des classes JAXB, qui implémentent java.io.Serializable. Les états des classes qui n'implémentent pas cette interface ne sont pas sérialisés ou désérialisés.
- Activer le support MTOM : si vous cochez cette case, le mécanisme
SOAP MTOM (Message Transmission Optimization Mechanism) est utilisé pour optimiser la transmission
des contenus binaires. Pour plus d'informations sur MTOM, lisez la rubrique de présentation de MTOM.
- Version du code JAX-WS à générer : WebSphere Application Server version 7.0 prend en charge le code conforme à JAX-WS 2.0 ou 2.1. WebSphere Application
Server version 8.0, version 8.5 et WebSphere Application Server Liberty Profile
version 8.5.5 prennent en charge le code conforme à JAX-WS 2.0, 2.1 ou 2.2.
- Copier le document WSDL dans le projet : sélectionnez cette option pour copier le fichier WSDL dans le projet de service. Sinon, le fichier WSDL requis est généré dynamiquement par l'environnement d'exécution lorsqu'il est nécessaire. Cette option est pratique si vous prévoyez de créer le client ultérieurement ou de publier le fichier WSDL pour d'autres utilisateurs.
- Générer des classes JAXB sérialisables : dans WebSphere Application Server and WebSphere
Application Server Liberty Profile version 8.5.5, lorsque vous activez la facette Java 6, vous pouvez choisir de générer des classes JAXB, qui implémentent java.io.Serializable. Les états des classes qui n'implémentent pas cette interface ne sont pas sérialisés ou désérialisés.
- Spécifier des fichiers de liaisons JAX-WS ou JAXB : si vous avez créé des fichiers de liaisons personnalisées
JAX-WS ou JAXB, cochez cette case pour les utiliser afin de créer ce service Web. Si cette case à cocher est sélectionnée, la page suivante de l'assistant vous permet de parcourir les fichiers de déclarations de liaisons personnalisées.
- Personnaliser le nom de la classe d'implémentation de service : sélectionnez cette case à cocher pour changer le mappage par défaut entre le nom de port et le nom de classe
de l'implémentation du service.
- Générer un projet de bibliothèque de schémas à partir d'un fichier XSD : cette option permet de générer un code de schéma dans une bibliothèque de schémas. Si vous sélectionnez une bibliothèque de schémas, dans l'une des pages suivantes, vous pouvez personnaliser les mappages entre des documents XSD ou des groupes de documents XSD à un projet.
- Générer un descripteur de déploiement de service Web : pour les services Web JAX-WS, les informations
de déploiement sont générées dynamiquement par l'environnement d'exécution ; les descripteurs de déploiement
statiques ne sont plus requis. La sélection de cette case à cocher les génère.
- Autoriser les extensions de fournisseurs tiers : si vous sélectionnez cette case à cocher, l'option -extension est ajoutée à la commande wsgen ou wsimport.
L'option -extension indique si des extensions personnalisées doivent être activées ou acceptées pour les fonctionnalités qui ne sont pas définies par la spécification JAX-WS. L'utilisation des extensions peut donner lieu à des applications non portables ou non interopérables avec d'autres implémentations.
Pour des détails, voir les rubriques Commande wsgen pour les applications JAX-WS et Commande wsimport pour les applications JAX-WS disponibles dans le centre de documentation de WebSphere Application Server.
- Selon les options que vous avez choisies dans la page précédente, vous pouvez être invité à personnaliser votre implémentation de service Web dans les pages suivantes :
- Page Déclarations de liaisons personnalisées : si vous avez choisi de spécifier des fichiers de liaisons JAX-WS ou JAXB, vous pouvez rechercher les fichiers dans cette page.
- Page Configuration de l'implémentation des services : pour chaque port défini dans le fichier WSDL, vous pouvez entrer un nom pour la classe d'implémentation de service ou accepter la valeur par défaut.
- Page Configuration des projets de schémas : si vous avez choisi de générer une bibliothèque de schémas, utilisez cette page pour personnaliser les mappages entre des documents XSD et des projets. Cette fonction est opérationnelle si toutes les dépendances de schéma se trouvent dans des espaces de nom cible différents ; sinon, des erreurs de compilation surviennent dans ObjectFactory.java.
- Page Tester le service Web : si vous avez choisi de tester le service Web, sélectionnez la fonction de test pour le service Web généré et cliquez sur Lancer. Le service Web s'ouvre dans l'explorateur de services Web ou le client de service générique. Sélectionnez l'opération à tester, entrez les informations requises et cliquez sur OK.
Le résultat s'affiche dans le panneau Statut. Cliquez sur Suivant.
- Page Configuration d'un client de service Web WebSphere JAX-WS : si vous avez choisi de générer un client, vous pouvez spécifier les options suivantes pour le client dans cette page :
- Dossier de sortie : emplacement dans lequel le code client est généré
- Package cible : l'assistant du client de service Web génère plusieurs fichiers Java. Par défaut, il crée un nom de package reposant sur l'espace de nom spécifié dans le fichier WSDL. Pour remplacer ce comportement par défaut, vous pouvez spécifier votre propre nom de package.
- Générer un client portable : sélectionnez cette case à cocher pour déplacer votre code client de service Web d'une machine à une autre ou d'une instance de WebSphere Application
Server ou WebSphere Application
Server Liberty Profile version 8.5.5 à une autre. Si cette option est sélectionnée, le document WSDL et le schéma XML ainsi que tous les autres documents WSDL dont il dépend sont copiés dans le projet de client sous WEB-INF/wsdl
et un élément file:relativeURL désignant cette copie est injecté dans le bloc d'initialisation statique de la classe de service JAX-WS.
- Activer l'appel asynchrone pour le client généré : si vous choisissez d'activer un client asynchrone, pour chaque méthode du service Web, deux méthodes supplémentaires sont créées. Il s'agit de méthodes d'interrogation et de rappel qui permettent au client de fonctionner en mode asynchrone.
- Spécifier des fichiers de liaisons JAX-WS ou JAXB : si vous avez créé des fichiers de liaisons personnalisées
JAX-WS ou JAXB, cochez cette case pour les utiliser afin de créer le client de service Web. Si cette case à cocher est sélectionnée, la page suivante de l'assistant vous permet de parcourir les fichiers de déclarations de liaisons personnalisées.
- Personnaliser le nom de classe du proxy client : sélectionnez cette case à cocher pour changer le mappage par défaut entre le nom de port et le nom de classe
de l'implémentation du service.
- Page Déclarations de liaisons personnalisées : si vous avez choisi de spécifier des fichiers de liaisons JAX-WS ou JAXB, vous pouvez rechercher les fichiers dans cette page.
- Page Configuration de l'implémentation des services : Page Configuration de la génération du proxy : pour chaque port défini, vous pouvez entrer un nom pour la classe de proxy ou accepter la valeur par défaut.
- Page Test du client du service Web :
- Tester le proxy généré : si cette option est sélectionnée, le client exemple est démarré dans un navigateur Web pour que vous puissiez tester la fonction.
- Sélectionnez votre fonction de test.Vous pouvez tester le proxy généré dans le client
de service générique ou dans l'explorateur de services Web. Vous pouvez
aussi opter pour la génération de pages JSP
JAX-WS 2.0..
- Dossier : si vous avez choisi de tester le proxy via une page JSP, vous pouvez
sélectionner le dossier dans lequel se trouve la page JSP ainsi que les
méthodes incluses dans la page JSP.
- Méthodes : sélectionnez les méthodes à exposer. Si vous avez choisi d'activer l'appel asynchrone, les méthodes asynchrones sont également répertoriées.
- Exécuter le test sur le serveur : démarre le serveur pour vous automatiquement.
Résultats
Une fois le
service Web créé, les événements suivants peuvent survenir selon les options
sélectionnées :
- Le bean d'implémentation est ouvert dans l'éditeur Java. Il contient le code squelette pouvant être utilisé pour tester la fonction de base du service Web, ou vous pouvez implémenter la logique métier requise pour votre service avant de le tester.
- Si vous avez choisi de tester le proxy généré avec des pages JSP JAX-WS 2.0, le proxy est démarré dans un navigateur Web à l'adresse URL suivante : http://localhost:port/ProjetWebClient/sampleNomBean/NomServiceWeb/TestClient.jsp Vous pouvez utiliser cette application exemple pour tester le service Web en sélectionnant une méthode, en entrant une valeur pour la méthode, et en cliquant sur Appeler.
Le résultat de la méthode s'affiche dans le panneau des résultats. Etant donné qu'il s'agit d'un squelette de bean Java dont l'implémentation de méthode est triviale, la valeur -3 est renvoyée.
- Si vous avez choisi de tester le proxy généré avec Universal Test Client, il est démarré dans une fenêtre de navigateur à une adresse URL similaire à la suivante : http://localhost:port/UTC/preload?object=PackageBean.ProxyServiceBean.
Sous Objets, développez le module de remplacement de proxy pour afficher les méthodes du service Web. Cliquez sur la méthode à tester, entrez une valeur dans le panneau Paramètres et cliquez sur Appeler.
Le résultat est généré et s'affiche.
- Si vous avez choisi de tester le service Web avec l'explorateur de services Web, l'explorateur s'ouvre. Sélectionnez l'opération à tester, entrez les informations requises et cliquez sur OK.
Le résultat s'affiche dans le panneau Statut.