Cette rubrique indique comment effectuer la migration de
clients utilisant une interface EJB pour appeler un
service.
- Faites un glisser/déposer de l'exportation avec liaison
SCA depuis le module
migré vers l'instance d'Assembly Editor du nouveau module. Cela va
créer une importation avec liaison SCA.
Pour qu'un client obtienne une référence à cette importation, vous devez
créer une référence autonome.
- Sélectionnez l'option Référence autonome dans la palette. Cliquez sur
le canevas Assembly Editor une fois pour créer une nouvelle référence
autonome pour ce nouveau module.
- Sélectionnez l'outil Connexion et cliquez sur la référence du
service, puis sur Importer.
- Cliquez sur OK quand un message vous dit
qu'une référence correspondante sera créé sur le noeud source.
- Vous recevez le message suivant : Il est plus
facile pour un client Java d'utiliser une interface Java avec
cette référence. Voulez-vous convertir la référence WSDL en
référence compatible Java ?
- Cliquez sur Oui si vous souhaitez que le
client recherche ce service et effectue un cast vers une classe
Java pour l'appeler à l'aide
d'une interface Java.
Cette nouvelle interface
Java
prend le nom du type de port WSDL. Le module de l'interface provient
de l'espace de nom du type de port WSDL. Une méthode est définie pour
chaque opération définie sur le type de port WSDL et chaque message
WSDL est représenté par un argument dans les méthodes de l'interface.
- Cliquez sur Non si vous souhaitez que le
client recherche ce service et utilise l'interface générique
com.ibm.websphere.sca.Service pour l'appeler à l'aide de l'opération
d'appel en tant que service SCA générique.
- Si besoin, donnez à la référence autonome un nom plus significatif en
sélectionnant l'option Références autonomes dans Assembly Editor. Passez dans la vue Propriétés, onglet Détails, puis recherchez et
sélectionnez la référence qui vient d'être créée. Modifiez son nom. Gardez en mémoire le nom choisi pour cette référence car le
client devra utiliser celui-ci lors de l'appel de la méthode
locateService de l'instance com.ibm.websphere.sca.ServiceManager.
- Cliquez sur Sauvegarder pour sauvegarder le
diagramme de l'assemblage.
Le nouveau module doit se trouver dans le chemin de classe local du
client pour que l'on puisse accéder au module EJB migré qui s'exécute
sur le serveur.
Voici à quoi ressemble le code client pour
un service de type "CustomerInfo" :
// Créer un gestionnaire de services
ServiceManager serviceManager = ServiceManager.INSTANCE;
// Localiser le service CustomerInfo
CustomerInfo customerInfoService = (CustomerInfo) serviceManager.locateService
("<name-of-standalone-reference-from-previous-step");
// Appeler le service CustomerInfo
System.out.println(" [getMyValue] getting customer info...");
DataObject customer = customerInfoService.getCustomerInfo(customerID);
Le client doit modifier la structure du message.
Auparavant, les messages étaient basés sur la classe WSIFMessage
mais ils doivent maintenant être basés sur la classe
commonj.sdo.DataObject.