Les beans Java entrants WOLA (WebSphere Optimized Local Adapters)
peuvent être appelés par des applications externes s'exécutant dans CICS, IMS, UNIX System Services ou en batch.
Cette rubrique fournit les étapes pour générer un bean Java cible WOLA
définissant un objet qui mappe le contenu de la zone d'octets transmise sur un copybook COBOL existant.
Avant de commencer
Important : Les beans J2C sont formellement
pris en charge et testés sur les serveurs WebSphere Application Server. Leur utilisation dans d'autres environnements Java™ devrait être possible,
mais les tests effectués à ce titre n'ont pas été très poussés.
Si un problème se présente au niveau du code généré et que ce problème peut être isolé en tant que tel
au sein d'un environnement WebSphere Application Server,
le support sera assuré.
Pourquoi et quand exécuter cette tâche
Les beans Java entrants WOLA
peuvent être appelés par des applications externes s'exécutant dans CICS, IMS, UNIX System Services ou en batch.
Le même bean Java peut être développé et
appelé depuis n'importe lequel de ces environnements.
De plus, le bean Java
peut également être appelé en utilisant les méthodes d'appel à distance Java standard,
par exemple RMI via IIOP.
La caractéristique unique du bean Java WOLA,
qui améliore l'exécution de l'environnement WAS z/OS
lors des appels depuis des espaces d'adresses externes,
est qu'il s'agit d'une implémentation de l'interface home com.ibm.websphere.ola.ExecuteHome
et de l'interface distante com.ibm.websphere.ola.Execute.
Il doit contenir une méthode nommée execute() qui reçoit un tableau d'octets en entrée
et en renvoie un autre en réponse.
Utilisez le plan de travail pour générer un bean Java cible WOLA.
Il génère un bean Java cible de style Java 3.1.
Le source généré contient une annotation @RemoteHome(com.ibm.websphere.ola.ExecuteHome.class)
au-dessus du nom de classe Java.
Le plan de travail génère également
le nom Java en utilisant l'annotation @Stateless(mappedName="<nom JNDI Java>").
C'est ce nom home Java que l'application appelante dans l'environnement CICS, IMS ou batch
doit transmettre comme nom de service WOLA
dans les API Invoke ou Send Request WOLA.
Vous pouvez également générer avec
le plan de travail un bean Java cible WOLA et des classes auxiliaires qui aident
au traitement du tableau d'octets transmis et du tableau d'octets renvoyé.
Le copybook COBOL, la structure PL/I ou la structure C peut être transmis
sous forme d'entrées lors du processus de création du bean Java WOLA.
Le plan de travail
génèrera du code pour remplir un objet fournissant un accès simple
aux diverses parties du copybook ou de la structure.
Procédure
- Sélectionnez .
- Cliquez sur WebSphere Optimized Local Adapter (IBM:2), puis sur Suivant.
- Sur la page Importation de connecteur, dans la zone Projet de connecteur,
acceptez la valeur par défaut ola ;
dans la zone Serveur cible, sélectionnez la version de WebSphere Application Server
à utiliser, puis cliquez sur Suivant.
- Sur la page Style de l'adaptateur, sélectionnez Entrant et cliquez sur Suivant.
- Sur la page Propriétés de connexion, entrez le nom JNDI du bean Java cible.
Ce nom est utilisé dans l'annotation @Stateless(mappedName="#nom JNDI Java>").
Cliquez sur Suivant.
- Dans la page Propriétés de sortie du bean Java J2C, entrez un nom pour le projet Java,
puis cliquez sur Nouveau.
- Sur la page Projet Java, le nom entré pour le projet sur la page
Nouveau bean Java J2C
est affiché dans la zone Nom.
Vérifiez qu'il est correct. Si le nom du projet n'est pas affiché,
entrez-le dans la zone Nom.
- Dans la zone Nom, entrez un nom pour le projet Java.
Pour modifier la valeur par défaut de l'Emplacement du projet,
cliquez sur le bouton Parcourir pour sélectionner un nouvel emplacement.
- Dans la zone Environnement d'exécution cible,
sélectionnez la version de WebSphere Application Server
dans laquelle vous souhaitez déployer le projet.
Cette sélection affecte les paramètres de compilation et d'exécution en modifiant les entrées de chemin de classe du projet.
Remarque : Si vous spécifiez un nouveau nom de projet EAR, le projet est créé à l'emplacement par défaut avec le numéro de
version Java EE le plus bas compatible avec la version du projet créé.
Pour spécifier une autre version ou un autre emplacement pour l'application d'entreprise,
utilisez l'assistant Nouveau projet d'application d'entreprise.
- Acceptez la version de module Java par défaut
ou sélectionnez une version différente dans la liste.
Si vous créez des applications entrantes J2C, vous devez sélectionner Java 3.0.
Important : Si vous sélectionnez Java 3.0,
l'assistant Java 3.0 crée par défaut une interface locale.
Pour créer une interface distante,
créez-la manuellement en ajoutant l'annotation @Remote(class= interface.java) au bean J2C.
- Dans la zone Configuration, acceptez la configuration par défaut
ou cliquez sur Modifier et changez les facettes du projet.
- Pour ajouter le projet Java à un projet EAR, sélectionnez Ajouter le projet à un projet EAR.
- Choisissez le projet EAR auquel vous souhaitez ajouter le module Java
ou entrez le nom d'un nouveau projet EAR dans la zone Nom du projet EAR,
puis cliquez sur Suivant.
- Sur la page Module Java, dans la zone Dossier source,
acceptez la valeur par défaut ejbModule
ou entrez un autre nom de dossier source pour le projet Java,
puis cliquez sur Suivant.
- Sur la page Configurer les paramètres du module Java, effectuez les opérations suivantes :
- Pour conserver les classes d'interface client pour les beans enterprise
dans un fichier JAR de client Java séparé,
cliquez sur Créer un module JAR de client Java pour les interfaces et classes clientes.
Ce fichier JAR de client Java est ajouté à l'application d'entreprise en tant que fichier JAR utilitaire de projet.
- Dans la zone Nom, acceptez le nom par défaut
du module JAR de client ou tapez un nom différent.
- Dans la zone URI du fichier JAR client, acceptez le nom par défaut
du fichier JAR de client ou tapez un nom différent.
- Cliquez sur Terminer.
- Sur la page Propriétés de sortie du bean Java J2C,
- dans la zone Nom du projet Java,
vérifiez que le nom de projet est correct ou entrez le nom de projet correct.
- dans la zone Nom du package, entrez le nom de votre package.
- dans la zone Nom Java de la session sans état, entrez le nom Java de votre session sans état.
puis cliquez sur Suivant.
- Sur la page Méthodes Java, cliquez sur Ajouter... pour créer une méthode Java.
- Sur la page Méthode Java,
- dans la zone Type d'entrée, cliquez sur Parcourir
pour trouver une entrée ou sur Nouveau pour en créer une nouvelle.
- Sur la page Importation de données, dans la zone Choisir le mappage,
sélectionnez COBOL vers Java.
- dans la zone Fichier COBOL, cliquez sur Parcourir
et sélectionnez votre fichier COBOL, puis cliquez sur Suivant.
- Sur la page Importateur, sélectionnez z/OS dans la zone Plateforme,
IBM-1047 dans la zone Page de codes,
et la structure de données à utiliser dans la zone Structures de données,
puis cliquez sur Suivant.
- Sur la page Sauvegarde des propriétés,
assurez-vous que les valeurs voulues pour la classe auxiliaire soient affichées,
puis cliquez sur Terminer.
- Cliquez sur Terminer deux fois de suite.
Le bean de session Java entrant WOLA cible est généré avec la classe auxiliaire associée,
pour faciliter l'accès au tableau d'octets transmis dans votre implémentation.
Résultats
Exemple de classe Java
Voici un exemple de code Java WOLA généré par RAD nommé
CustomerGet,
créé avec le nom JNDI
CustomerGetDetails
et ayant une classe auxiliaire nommée
CUSTOMER,
générée à partir d'un copybook COBOL
qui avait un mappage de niveau 01 nommé
CUSTOMER :
package com.ibm.rad.ola.test;
import javax.annotation.Generated;
import javax.ejb.RemoteHome;
import javax.ejb.Stateless;
import com.ibm.xmlns.prod.websphere.j2ca.sap.sappeaddress1139792376.SapPeAddress;
import com.ibm.xmlns.prod.websphere.j2ca.sap.sapreturn468436650.SapReturn;
@Generated(comments = "Ce code ne doit pas être modifié directement sauf pour le corps des méthodes métier. Pour changer la valeur de l'annotation, utilisez la vue Annotation. Pour le regénérer, réexécutez l'assistant Bean J2C. Sauvegardez les implémentations des méthodes métier avant de procéder à une regénération.", date = "Mardi 5 novembre 2013 18:55:10", value = { "Ce code est généré par le générateur de code Rational J2EE Connector Tools." })
@Stateless(mappedName = "CustomerGetDetails")
@RemoteHome(com.ibm.websphere.ola.ExecuteHome.class)
public class CustomerGet {
public CustomerGet() {
}
public byte[] execute(byte[] theBytes) {
com.ibm.rad.ola.test.CUSTOMER input = new com.ibm.rad.ola.test.CUSTOMER();
input.setBytes(theBytes);
com.ibm.rad.ola.test.CUSTOMER output = execute(input);
return (output.getBytes());
}
public com.ibm.rad.ola.test.CUSTOMER execute(
com.ibm.rad.ola.test.CUSTOMER input) {
com.ibm.rad.ola.test.CUSTOMER output = new com.ibm.rad.ola.test.CUSTOMER();
// A FAIRE - Implémenter ici la logique métier.
return (output);
}
}
Le commentaire // A FAIRE ci-dessus
est l'endroit vous devez ajouter le code d'implémentation.
L'espace de travail a généré le code qui génère une instance de la classe CUSTOMER et la charge
avec le contenu du tableau d'octets d'entrée.
Cela signifie que les méthodes getter associées à la classe CUSTOMER peuvent être invoquées pour extraire
des parties du tableau d'octets d'entrée.
Les méthodes getter gèrent la traduction de la page de codes
afin que l'application n'aie pas besoin de s'en préoccuper.
L'application externe qui appelle ce code Java
doit spécifier le nom de service WOLA CustomerGetDetails
pour appeler le code via une API Invoke (BBOA1INV) ou Send Request (BBOA1SRQ) WOLA.