< Précédent | Suivant >

Leçon 2 : Création du service Web

Dans cette leçon, vous allez apprendre à créer le service Web Carnet d'adresses Java™ descendant à partir du fichier WSDL importé au cours de la leçon précédente.

Avant de commencer, vous devez terminer la leçon 1 : Créer un serveur et un projet Web .
  1. Passez à la perspective Java EE : Fenêtre > Ouvrir la perspective >Autre > Java EE.
  2. Dans la vue Explorateur d'entreprise, sélectionnez le fichier WSDL que vous avez importé lors de la précédente leçon.
  3. Cliquez avec le bouton droit de la souris sur le fichier WSDL et sélectionnez Services Web > Générer un squelette de bean Java.
  4. Page Services Web : sélectionnez le type de service Web Service Web de bean Java descendant et assurez-vous que AddressBook.wsdl est défini en tant que définition de service. Choisissez les options suivantes :
    1. Faites glisser le curseur à gauche de l'illustration pour indiquer jusqu'à quelle étape du développement du service web vous souhaitez aller. Le curseur définit les valeurs par défaut sur les pages restantes de l'assistant, mais vous pouvez spécifier vos propres réglages sur chaque page à mesure que vous progressez. Pour ce tutoriel, sélectionnez Démarrer le service. Cette opération crée le code requis pour le service Web, déployez-le sur le serveur et essayez de démarrer ce dernier.
    2. Sélectionnez votre serveur : cliquez sur le lien du serveur et vérifiez que la version 8 de WebSphere Aplication Server est sélectionnée.
    3. Sélectionnez votre environnement d'exécution : vérifiez que l'environnement IBM® JAX-WS est sélectionné.
    4. Sélectionnez le projet du service : choisissez le projet jwsAddressBook que vous avez créé lors de la précédente leçon.
    5. Sélectionnez le projet EAR du service : choisissez le projet jwsAddressBookEAR que vous avez créé lors de la précédente leçon.
    6. Le client sera créé plus tard. Aussi, vérifiez que le curseur de sélection des étapes de développement du client (illustration du bas) est réglé sur Aucun client.
    Cliquez sur Next.
  5. Page Configuration de services Web descendants WebSphere JAX-WS :
    • Dossier de sortie : dossier où sera généré le squelette Java. Acceptez l'emplacement par défaut : jwsAddressBook/src.
    • Package cible : acceptez le nom de package 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. Acceptez la valeur par défaut.
    • 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. Acceptez la valeur par défaut.
    • Version du code JAX-WS à générer : à compter de la version 8.0 de WebSphere Application Server, vous pouvez générer un code conforme à JAX-WS 2.1. Sélectionnez 2.1 pour ce tutoriel.
    • Copier le document WSDL dans le projet : sélectionnez cette option pour que le fichier WSDL soit copié dans le projet du service. Comme le client sera créé plus tard, cochez cette case.
    • Générer des classes JAXB sérialisables : dans WebSphere Application Server 7.0 et version ultérieure, lorsque vous activez la facette Java 6, vous pouvez choisir de générer des classes JAXB qui implémentent java.io.Serializable. Les classes qui n'implémentent pas cette interface ne pourront voir leurs états sérialisés ou dé-sérialisés. Ne sélectionnez pas cette option pour ce tutoriel.
    • Spécifier des fichiers de liaisons JAX-WS ou JAXB : permet d'utiliser des fichiers de liaisons JAX-WS ou JAXB personnalisés. Ne sélectionnez pas cette option pour ce tutoriel.
    • Personnaliser le nom de la classe d'implémentation de service : permet de changer le mappage par défaut entre le nom de port et le nom de classe de l'implémentation du service. Ne sélectionnez pas cette option pour ce tutoriel.
    • Générer une bibliothèque de schémas : si vous sélectionnez cette option, le compilateur Schéma JAX-WS vers Java sera exécuté pour générer un schéma. Ne sélectionnez pas cette option pour ce tutoriel.
    • 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. Cette case permet quand même de les générer si besoin est. Ce tutoriel n'en a pas l'utilité.
    Cliquez sur Next.
L'ensemble du code requis pour le service Web est généré

Ajouter la logique applicative au squelette de bean

Le bean d'implémentation de squelette générée par l'assistant de service Web AddressBookPortImpl.java ne contient pas de logique métier. Il contient l'annotation @javax.jws.WebService qui indique au module d'exécution qu'il s'agit d'un service Web JAX-WS.

Pour que le service Web Carnet d'adresses fonctionne comme prévu, vous devez ajouter le code à ce bean. Il doit être ouvert automatiquement dans un éditeur après la génération du service Web, mais dans le cas contraire, il est disponible dans le répertoire : jwsAddressBook/Java Resources/src/com.addressbook.

  1. Remplacez la méthode saveAddress actuelle :
        public boolean saveAddress(PersonType person) {
            return false;
        }
    par le champ statique et la méthode ci-après :
    	private static Hashtable<String,AddressType> addresses = new Hashtable<String,AddressType>();
        public boolean saveAddress(PersonType person) {
        	addresses.put(person.getName(),person.getAddress());
            return true;
        }
  2. Remplacez la méthode findAddress actuelle :
        public AddressType findAddress(String name) throws FindAddressFault {
            return null;
        }
    par ce qui suit :
        public AddressType findAddress(String name) throws FindAddressFault {
            return addresses.get(name);
        }
  3. Plusieurs marqueurs d'erreur peuvent s'afficher. Pour corriger les erreurs qu'ils signalent, organisez vos importations en appuyant sur Ctrl+Maj+o. Sélectionnez java.util.Hashtable comme package à importer. Cela fait, les erreurs doivent être grisées.
  4. Enregistrez le bean d'implémentation mis à jour.

Test du service Web à l'aide du Client de service générique

Le Client de service générique vous permet de tester un service Web sans générer un client. Vous pouvez sélectionner l'opération à tester, entrez les informations requises et voir le résultat dans le volet Statut.
  1. Sélectionnez le fichier WSDL généré jwsAddressBook/WebContent/WEB-INF/wsdl/AddressBook.wsdl, cliquez avec le bouton droit de la souris et sélectionnez Services Web > Tester avec le client de service générique. Vous avez également la possibilité de sélectionner le service sous le noeud Services du projet ou le noeud Services Web JAX-WS dans la vue Services et lancer le client de service générique à partir d'ici.
  2. Sélectionnez l'opération SaveAddress.
  3. Entrez des valeurs dans chaque zone et cliquez sur Appeler.
  4. Sélectionnez l'opération FindAddress.
  5. Entrez le nom que vous avez choisi lors de l'appel de l'opération saveAddress et cliquez sur Appeler.
  6. Les autres informations enregistrées avec ce nom doivent s'afficher dans le volet Statut.

Etat des connaissances

Vous êtes prêt à commencer la leçon 3 : Création du client de service Web .

< Précédent | Suivant >
Icône indiquant le type de rubrique Rubrique de leçon de tutoriel
Dispositions pour les centres de documentation | Commentaires en retour

Icône d'horodatage Dernière mise à jour: May 29, 2014 10:11

Nom de fichier : jaxwstd_exercise12.html