Création d'un service Hello World avec EGL >
< Précédent | Suivant >

Leçon 4 : Configurer le projet comme client

Tout comme le projet du service, le projet du client utilise un fichier descripteur de déploiement EGL. Mais dans le projet du client, le descripteur de déploiement EGL contiendra des informations permettant de localiser les services. Vous importerez le fichier WSDL que vous avez créé à partir du service et EGL ajoutera les informations de liaison appropriées au descripteur de déploiement EGL afin que le client puisse trouver le service.

Dans le cadre de ce processus, EGL créera un composant Interface pour représenter le service à l'intérieur du projet du client. Une fois que le composant Interface sera lié au service proprement dit, vous pourrez l'utiliser comme s'il s'agissait du service lui-même.

Démonstration

Configurer le fichier descripteur de déploiement EGL

  1. Ouvrez le descripteur de déploiement EGL du projet du client en faisant un double clic sur EGLClient/EGLSource/EGLClient.egldd dans la vue Explorateur de projets. Notez que le descripteur de déploiement EGL n'a aucun rapport avec le dossier du descripteur de déploiement Java, qui figure également dans le projet EGLClient.
  2. Cliquez sur l'onglet Liaison de service dans le bas de l'éditeur du descripteur de déploiement.
  3. Dans l'onglet Liaison de service, cliquez sur Ajouter.
  4. Dans la fenêtre Ajouter une liaison de service, cliquez sur Liaison web.
  5. Cliquez sur Suivant.
  6. Cochez la case Sélectionner le fichier WSDL dans l'espace de travail et le copier dans le projet courant.
  7. Cliquez sur Parcourir.
  8. Sélectionnez le fichier HelloService.wsdl (dans le dossier EGLSource\wsdl du projet EGLService) et cliquez sur OK.
  9. Dans la section Options de l'interface, sélectionnez Générer l'interface EGL à partir d'un fichier WSDL. Lorsque cette option est sélectionnée, EGL crée automatiquement les composants qui permettront d'accéder au service.
  10. Conservez les valeurs par défaut dans les autres zones de la page et cliquez sur Suivant. La page Nouvelle interface EGL affiche la liste de tous les services décrits dans le fichier WSDL. EGL créera, dans le projet du client, un composant Interface pour chaque service sélectionné sur cette page. Dans le cas présent, la liste ne contient qu'un seul service, celui que vous avez créé dans le projet du service.
  11. Assurez-vous que la case du service HelloService est cochée et cliquez sur Suivant. La page suivante vous permet de définir où sera créée le nouveau composant Interface et quel sera son nom. Vous pouvez aussi sélectionner les fonctions du service à inclure dans le composant Interface. Par défaut, toutes les fonctions du composant Interface sont incluses.
  12. Vérifiez que la zone Dossier source contient bien le nom du dossier source du projet du client, EGLClient\EGLSource.
  13. Vérifiez que le package services est spécifié dans la zone Package.
  14. Vérifiez que la case de la fonction DisBonjour est bien cochée dans la liste Fonctions. La fenêtre ressemble à ceci :
    Fenêtre Ajout d'une liaison de service
  15. Cliquez sur Terminer. Vous venez de créer une liaison de service. Grâce à cette liaison, la page Web que vous avez créée dans ce projet pourra accéder au service. La liaison créée dans le descripteur de déploiement ressemble à ceci :
    Fichier descripteur de déploiement du client
  16. Sauvegardez et fermez le fichier descripteur de déploiement. Notez qu'EGL a créé un composant Interface dans le package services du projet. Le composant Interface ressemble à ceci :
    Nouveau composant Interface

    Cette interface est semblable à celle que vous avez créée dans l'application du service, mais elle possède des propriétés additionnelles qui font référence à la liaison dans le fichier descripteur de déploiement.

  17. Comme vous l'avez fait dans le projet EGLService, vérifiez qu'il existe bien une référence au descripteur de déploiement dans le descripteur de génération du client :
    1. Faites un double clic sur le fichier du descripteur de génération du projet pour l'ouvrir dans l'éditeur de composant de génération. Ce fichier a pour nom EGLClient.eglbld et est situé dans le dossier EGLSource du projet.
    2. Dans la liste des options du descripteur de génération, vérifiez que l'option nommée deploymentDescriptor a pour valeur EGLClient.
    3. Cliquez sur OK et fermez le fichier.

Utiliser le service dans la page Web

  1. Ouvrez le gestionnaire JSF de la page Web ; il s'appelle ClientPage.egl.
  2. Dans le gestionnaire JSF, créez une variable à partir du composant Interface. Il est généralement plus facile de créer une variable de cette manière en recourant à l'assistant de contenu :
    1. Dans le fichier du gestionnaire JSF, placez le curseur sur une ligne vierge immédiatement après les trois variables que vous avez créées dans une précédente leçon.
    2. Tapez les caractères suivants comme début du code :
      he	
    3. Appuyez sur Ctrl + Barre d'espacement. L'assistant de contenu complète la ligne avec le code suivant :
      helloService HelloService {@bindService};
      L'assistant de contenu ajoute également une instruction import au gestionnaire JSF afin de vous permettre d'utiliser ce composant sans spécifier son emplacement complet. Le résultat ressemble à ceci :
      Ligne complétée par l'assistant de contenu
  3. Sur une ligne vierge, à l'intérieur de la fonction getHello(), appelez la fonction DisBonjour() du service en lui passant les variables nom et ville et en affectant sa sortie à la variable sortie :
    sortie = helloService.DisBonjour(nom, ville);
    N'oubliez pas que vous pouvez solliciter l'assistant de contenu en tapant les premiers caractères d'un mot clé ou d'un composant et en appuyant sur Ctrl + Barre d'espacement. Le gestionnaire JSF ressemble à ceci :
    Code du gestionnaire JSF
  4. Sauvegardez et fermez le gestionnaire JSF.
  5. Générez l'ensemble du projet du client en faisant un clic droit sur son nom dans la vue Explorateur de projets et en sélectionnant Générer.
  6. Pour les tests qui vont suivre, vous devez informer votre serveur d'applications du service que vous comptez appeler. Dans la vue Serveurs, faites un clic droit sur WebSphere Application Server v6.1 et sélectionnez Ajouter et supprimer des projets.
  7. Sur la page Ajout et suppression de projets, assurez-vous que les deux projets EGLClientEAR et EGLServiceEAR figurent dans la liste Projets configurés. Si l'un d'eux est encore dans la liste Projets disponibles, mettez-le en évidence et cliquez sur Ajouter, puis sur Terminer. La fenêtre se présente comme suit picture:
    Fenêtre Ajout et suppression de projets avec les projets EGLServiceEAR configuré sur le serveur
    La page web est maintenant prête à l'emploi.
  8. Dans la vue Explorateur de projets, cliquez avec le bouton droit de la souris sur la page Web ClientPage.jsp dans le dossier WebContent et non pas dans le dossier JSF Handler, puis cliquez sur Exécuter en tant que > Exécuter sur le serveur.
  9. Dans la fenêtre Définition d'un nouveau serveur, cliquez sur Sélectionner un serveur existant, puis sur WebSphere Application Server v6.1. Cliquez sur Terminer. Le serveur publie la page et l'affiche dans le navigateur Web interne. Si vous préférez utiliser un navigateur Web externe, vous pouvez copier l'URL depuis le navigateur Web interne et la coller dans la zone d'URL du navigateur externe.
  10. Tapez un nom et une ville dans les zones prévues à cet effet, puis cliquez sur le bouton de la page. La zone de sortie de la page affiche une chaîne composée à partir des données que vous avez entrées, par exemple "Marie-Chantale, bienvenue à La Courneuve !", comme dans l'image suivante :
    Page terminée
Cela peut vous sembler beaucoup de travail pour un résultat aussi simple, mais le but de ce tutoriel était avant tout de vous montrer comment EGL peut créer des services, des clients ou les deux et comment ces applications fonctionnent ensemble. En utilisant des services Web et des clients dans une architecture orientée services, vous pouvez intégrer un large éventail d'applications EGL et non EGL sous une forme à la fois souple et modulaire.
< Précédent | Suivant >