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 :
- 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.
- 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é.
- Démarrez le serveur de test, déployez cette application vers le
serveur et contrôlez son démarrage.
- 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.
- Cliquez-dessus avec le bouton droit de la souris et sélectionnez
.
- 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.
- Vérifiez que l'EJB sur lequel vous avez cliqué avec le bouton
droit de la souris est sélectionné, puis cliquez sur
Suivant.
- 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.
- 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.
- 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.
- 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.
- 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.
- Cliquez sur Suivant. Notez que cette
opération peut prendre quelques minutes.
- 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.
- Accédez à Business Integration et développez le module migré,
puis la catégorie logique Ports de service Web.
- 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 :
- 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.
- 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 .
- 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.