Création d'un service Web EJB : Option 2

L'outil des services Web Rational Application Developer est une autre option qui vous permet de créer un service Web autour d'un EJB.

Remarque : Reportez-vous aux informations disponibles sur le site Web suivant avant de tenter une migration à l'aide de cette méthode : http://publib.boulder.ibm.com/infocenter/rtnl0600/topic/ com.ibm.etools.webservice.was.creation.ejb.ui.doc/tasks/twsejbw.html
Remarque : Cette option requiert qu'un environnement d'exécution de service Web soit configuré via WebSphere Integration Developer avant l'appel de l'Assistant de service Web.
Pour créer un service Web autour d'un EJB, procédez comme suit :
  1. Cliquez avec le bouton droit de la souris sur le projet d'application d'entreprise situé dans le conteneur pour l'EJB autour duquel vous créez un service.
  2. Sélectionnez Propriétés, accédez aux propriétés Serveur et vérifiez que la zone Environnement d'exécution cible a la valeur WebSphere Process Server v6.0 et que Serveur par défaut correspond au serveur WebSphere Process Server v6.0 installé.
  3. Démarrez le serveur de test, déployez cette application vers le serveur et contrôlez son démarrage.
  4. Dans J2EE, développez le projet EJB dans la vue de l'explorateur de projet. Développez le descripteur de déploiement, puis la catégorie Beans de session. Sélectionnez le bean autour duquel générer le service Web.
  5. Cliquez-dessus avec le bouton droit de la souris et sélectionnez Services Web > Créer un service Web.
  6. Sélectionnez Service Web EJB pour Type de service Web et désactivez l'option Démarrer le service Web dans le projet Web, à moins que vous ne souhaitiez déployer immédiatement le service Web. Cliquez sur Suivant.
  7. Vérifiez que l'EJB sur lequel vous avez cliqué avec le bouton droit de la souris est sélectionné, puis cliquez sur Suivant.
  8. Vous devez maintenant configurer les options de déploiement du service. Cliquez sur le bouton Editer…. Sélectionnez WPS Server v6.0 comme type de serveur ; pour l'exécution du service Web, sélectionnez IBM WebSphere et J2EE version 1.4. Si vous ne pouvez pas sélectionner une combinaison valide à cette étape, reportez-vous à la section "Préparation de la migration" pour plus d'informations sur la migration des projets J2EE vers la version 1.4. Cliquez sur OK.
  9. Pour le projet Service, entrez le nom du projet EJB contenant l'EJB. Sélectionnez également le projet EAR approprié. Cliquez sur Suivant. Notez que cette opération peut prendre quelques minutes.
  10. Dans le panneau relatif à la configuration EJB du service Web, sélectionnez le projet routeur approprié à utiliser (choisissez le nom du projet Web routeur à créer pour que ce projet soit ajouté à la même application d'entreprise que l'EJB d'origine. Sélectionnez le transfert souhaité (SOAP sur HTTP ou SOAP sur JMS). Cliquez sur Suivant.
  11. Sélectionnez le fichier WSDL qui contiendra les définitions WSDL. Sélectionnez les méthodes que vous souhaitez exposer sur le service Web et choisissez le style/codage approprié (Document/Literal, RPC/Literal ou RPC/Encoded). Sélectionnez l'option Define custom mapping for package to namespace, puis choisissez un espace de nom uniquement associé à l'EJB en cours de migration pour tous les packages Java utilisés par cet EJB. L'espace de nom par défaut étant associé de façon unique au nom du package, des conflits peuvent se produire si vous créez un autre service Web utilisant les mêmes classes Java. Le cas échéant, renseignez les autres paramètres. Il existe des restrictions pour chaque combinaison style/codage. Pour plus d'informations à ce sujet, voir http://publib.boulder.ibm.com/infocenter/rtnl0600/topic/com.ibm.etools.webservice.doc/ ref/rlimit.html.
  12. Cliquez sur Suivant. Dans le panneau Web Service package to namespace mapping, cliquez sur le bouton Ajouter. Dans la ligne créée, entrez le nom de package de l'EJB, puis ajoutez l'espace de nom personnalisé qui identifie cet EJB de façon unique. Continuez à ajouter des mappages pour tous les packages Java utilisés par l'interface EJB.
  13. Cliquez sur Suivant. Notez que cette opération peut prendre quelques minutes.
  14. Cliquez sur Terminer. Une fois l'Assistant terminé, vous devez copier le fichier WSDL généré qui décrit le service EJB vers le projet du module Business Integration si le projet de service était un consommateur du service EJB. Il est situé dans le projet Web routeur généré sous le dossier WebContent/WEB-INF/wsdl. Actualisez/Concevez de nouveau le projet du module Business Integration.
  15. Accédez à Business Integration et développez le module migré, puis la catégorie logique Ports de service Web.
  16. Sélectionnez le port généré dans les étapes précédentes et faites-le glisser vers l'éditeur d'assemblage, puis créez une importation avec liaison de services Web. Sélectionnez l'interface WSDL de l'EJB si vous y êtes invité. A présent, le composant SCA qui utilisait l'EJB dans la version 5.1 peut être connecté à cette importation pour exécuter les étapes de migration de nouvelle connexion manuelle.
Si vous avez utilisé une approche descendante dans WebSphere Studio Application Developer Integration Edition, en générant un squelette EJB à partir d'une définition WSDL, procédez comme suit :
  1. Créez un projet Web et copiez le fichier WSDL à partir duquel vous souhaitez générer le squelette EJB dans le dossier source de ce projet Web.
  2. Cliquez avec le bouton droit de la souris sur le fichier WSDL contenant le type de port à partir duquel vous souhaitez générer le squelette EJB et sélectionnez Services Web > Générer un squelette de bean Java.
  3. Sélectionnez Service squelette Web EJB comme type de service Web et terminez l'Assistant.
Une fois l'assistant terminé, vous devez disposer d'un EJB qui implémente l'interface de service et qui ne dépend pas des API WSIF.

Notez que l'interface peut légèrement différer de l'interface 5.1, et vous devrez peut-être insérer un composant de médiation d'interface entre le consommateur 5.1 et la nouvelle importation. Pour ce faire, cliquez sur l'outil Connexion dans l'éditeur d'assemblage et connectez le composant source SCA à cette nouvelle importation avec liaison de services Web. Etant donné que les interfaces diffèrent, vous recevez le message suivant : Les noeuds source et cible n'ont pas d'interfaces correspondantes. Choisissez de créer un mappage d'interface entre les noeuds source et cible. Double-cliquez sur le composant de mappage créé dans l'éditeur d'assemblage. L'éditeur de mappage s'affiche. Consultez le centre d'informations pour obtenir des instructions sur la création d'un mappage d'interface.

Ensuite, vous devez reconnecter le service EJB. Comme il ne doit exister aucune référence, il vous suffit de reconnecter l'interface du composant Java :
  • Si ce service est appelé par un processus métier situé dans le même module, vous devez créer une connexion entre la référence de processus métier appropriée et l'interface de ce composant.
  • Si ce service est appelé par un processus métier situé dans un autre module, créez une exportation avec liaison SCA et à partir de l'autre module, effectuez un glisser-déposer de cette exportation vers l'éditeur d'assemblage de ce module pour créer l'importation avec liaison SCA correspondante. Connectez la référence de processus métier appropriée à cette importation.
  • Si ce service a été publié dans WebSphere Studio Application Developer Integration Edition pour un usage externe, reportez-vous à la section "Migration d'un service non BPEL entrant" pour savoir comment le republier.

Commentaires
(C) Copyright IBM Corporation 2005. Tous droits réservés.