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 uniquement
utiliser un fichier WSDL contenant un élément de service.
Remarque : Les services Web SOAP sur JMS sont pris en charge pour WebSphere Application Server version 8.0 ou ultérieure ; toutefois, la prise en charge n'est pas disponible pour WebSphere Application Server Liberty Profile version 8.5.5. Si vous voulez utiliser SOAP sur JMS, votre fichier WSDL doit utiliser l'une des valeurs d'URI d'attribut de transport suivantes :
- http://www.w3.org/TR/soapjms/
- http://www.w3.org/2010/soapjms/
Pour plus d'informations sur les déclarations SOAP sur JMS dans les fichiers WSDL, reportez-vous aux spécifications :
SOAP over Java™ Message Service 1.0: Working
Draft
- Créez un projet EJB et ajoutez-le à un nouveau projet EAR.
- Créez un projet Web vide si vous utilisez SOAP sur HTTP comme méthode de transport, ou un projet EJB si vous utilisez SOAP sur JMS comme méthode de transport, pour qu'il serve de projet de routeur. Le projet que vous créez dot être ajouté au même fichier EAR que le projet EJB contenant le bean enterprise. Pour plus d'informations sur les modules de routeur, voir Création de modules de routeur.
- Si vous voulez utiliser SOAP sur JMS, vous devez créer un serveur et une configuration de serveur pour JMX, comme décrit dans la rubrique Création d'un serveur JMS.
Pourquoi et quand exécuter cette tâche
Pour créer un bean Java squelette à partir d'un document WSDL avec 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 différents assistants de service Web. Sélectionnez l'assistant de service Web. Cliquez sur Suivant.
- Page Services Web : sélectionnez Service Web EJB descendant comme type de service Web. En option, vous pouvez effectuer les opérations suivantes :
- Sélectionnez les stades de développement de services Web que vous voulez effectuer à l'aide du curseur. 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élection du serveur : affichage du serveur par défaut.
Pour déployer votre service sur un serveur différent, cliquez sur le lien du serveur et spécifiez un autre serveur.
- Sélection de l'environnement d'exécution : affichage de l'environnement
d'exécution par défaut.
Pour déployer votre service dans l'environnement d'exécution IBM® JAX-WS, cliquez sur le lien de l'environnement d'exécution et sélectionnez l'environnement d'exécution dans la fenêtre qui s'ouvre.
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élection du projet de service : Affichage du projet sélectionné dans votre espace de travail. Les projets EJB seulement 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
la procédure 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.
- Publiez le service Web.
- Page de configuration Service Web EJB descendant de WebSphere JAX-WS :
- Dossier de sortie : entrez l'emplacement dans lequel le squelette EJB 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.
- Liaison de service Web EJB : indiquez si votre service utilisera des liaisons HTTP ou JMS.
- 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. Plus simplement, 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.
- Activer le support MTOM : si vous cochez cette case, le mécanisme
SOAP MTOM (Message Transmission Optimization Mechanism) sera utilisé pour optimiser la transmission
des contenus binaires. Pour plus d'informations sur MTOM, voir la 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. L'état des classes qui n'implémentent pas cette interface n'est pas sérialisé ou désérialisé.
- 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 qu'ils soient utilisés pour créer ce service Web. Si cette option 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 indispensables. Si vous sélectionnez cette case à cocher, ils seront tout de même générés..
- 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 de configuration de liaison JMS WebSphere JAX-WS : si vous avez sélectionné pour votre service Web l'utilisation de JMS comme méthode de transport, vous devez entrer des informations sur la liaison dans cette page.
- Destination JMS : sélectionnez la file d'attente ou la rubrique comme type de destination.
- Nom JNDI de la destination : nom JNDI de la rubrique ou de la file d'attente de destination.
- Fabrique de connexions JMS : nom JNDI de la fabrique de connexions.
- Nom de la fabrique de contexte initial : nom de la fabrique de contexte initial à utiliser. Il est mappé à la propriété java.naming.factory.initial.
- URL du fournisseur JNDI : elle est mappée à la propriété java.naming.provider.url.
- Mode de distribution : indique si le message de demande doit être persistant ou non.
- Durée de vie du message de requête : durée de vie en millisecondes du message de demande. Une valeur égale à zéro indique une durée de vie illimitée.
- Priorité du message de requête JMS : priorité JMS associée au message de demande. 0 est la priorité la plus faible et 9 la plus élevée.
- Nom de la file de réponse : nom du composant de port vers lequel la demande est envoyée.
- ID utilisateur de la fabrique de connexions : ID utilisateur à indiquer pour accéder à la fabrique de connexions.
- Mot de passe de la fabrique de connexions : mot de passe à indiquer pour se connecter à la fabrique de connexions.
- Utiliser le protocole d'interopérabilité SOAP/JMS : si vous sélectionnez cette option, la conformité du service Web au protocole recommandé par W3C
SOAP-JMS Binding Working Group est garantie. Pour plus d'informations, visitez le site suivant : Charter of the SOAP-JMS Binding Working Group.
- Define custom JMS properties : si vous sélectionnez cette option, une page dans laquelle vous pouvez entrer des paires propriété-valeur s'ouvre.
- 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 n'est opérationnelle que 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 de configuration de projet de routeur WebSphere JAX-WS : Cette page s'affiche lors du ciblage de l'environnement d'exécution
WebSphere Application
Server, mais pas de WebSphere Application Server Liberty Profile
version 8.5.5.
- Routeur HTTP : entrez le nom du projet à utiliser comme module de routeur. Un module de routeur fournit un noeud final de service Web pour un transport particulier.
- Routeur JMS : entrez le nom du projet à utiliser comme module de routeur. Un module de routeur fournit un noeud final de service Web pour un transport particulier.
- Mécanisme de déploiement MDB : sélectionnez la spécification d'activation JMS ou le port du programme d'écoute comme mécanisme de déploiement de bean géré par message.
- Nom JNDI de la spécification d'activation : entrez le nom JNDI de la spécification d'activation à utiliser pour déployer ce bean géré par message.
Ce nom doit correspondre au nom d'une spécification d'activation que vous définissez dans WebSphere Application
Server.
- Nom du port d'entrée du programme d'écoute : entrez le nom du port du programme d'écoute du module de routeur.
- Page Tester le service Web : si vous avez choisi de tester le service Web à l'étape 4a, 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.
Vous ne pouvez utiliser l'explorateur de services Web que pour tester les services Web qui utilisent des transports HTTP. Sélectionnez l'opération à tester, entrez les
informations requises, puis cliquez sur OK. Le résultat s'affiche dans le volet
Statut. Cliquez sur Suivant.
- Page de 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 : Il s'agit de l'emplacement où 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 package dont le nom repose sur l'espace de nom spécifié dans le fichier WSDL. Vous pouvez toutefois 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 option 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.
- 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 indispensables. Si vous sélectionnez cette case à cocher, ils seront tout de même générés..
- Version du code JAX-WS à générer : pour WebSphere Application Server version 7.0, vous pouvez générer du code compatible avec JAX-WS 2.0 ou 2.1. Pour WebSphere Application Server
version 8.0 et version 8.5, et WebSphere Application
Server Liberty Profile version 8.5.5, vous pouvez générer du code compatible avec
JAX-WS 2.0, 2.1 ou 2.2.
- 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 fonctionnalité.
- 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 doit se trouver 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 : sélectionnez cette option pour que le serveur soit démarré
automatiquement.
Résultats
Une fois le service Web créé, les événements
suivants se produisent 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é à l'aide de pages JSP JAX-WS 2.0, le proxy est lancé dans un navigateur Web à l'adresse URL suivante : http://localhost: port/
ProjetWebClient/sampleNomBean/
NomServiceWeb/TestClient.jsp Vous pouvez utiliser
cet exemple d'application pour tester le service Web en sélectionnant une
méthode, en entrant une valeur pour la méthode, puis en cliquant sur
Appeler.
Le résultat de la méthode s'affiche dans la fenêtre de
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 la fenêtre Paramètres et cliquez
sur Appeler. Le résultat est généré.
- 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, puis cliquez sur OK. Le résultat s'affiche dans
le volet Statut.