Génération de beans de session Java entrants WOLA

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

  1. Sélectionnez Fichier > Nouveau > Autre > J2C.
  2. Cliquez sur WebSphere Optimized Local Adapter (IBM:2), puis sur Suivant.
  3. 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.
  4. Sur la page Style de l'adaptateur, sélectionnez Entrant et cliquez sur Suivant.
  5. 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.
  6. Dans la page Propriétés de sortie du bean Java J2C, entrez un nom pour le projet Java, puis cliquez sur Nouveau.
    1. 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.
    2. 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.
    3. 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.
    4. 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.
    5. Dans la zone Configuration, acceptez la configuration par défaut ou cliquez sur Modifier et changez les facettes du projet.
    6. Pour ajouter le projet Java à un projet EAR, sélectionnez Ajouter le projet à un projet EAR.
    7. 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.
    8. 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.
    9. Sur la page Configurer les paramètres du module Java, effectuez les opérations suivantes :
      1. 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.
      2. Dans la zone Nom, acceptez le nom par défaut du module JAR de client ou tapez un nom différent.
      3. 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.
    10. Cliquez sur Terminer.
  7. Sur la page Propriétés de sortie du bean Java J2C,
    1. dans la zone Nom du projet Java, vérifiez que le nom de projet est correct ou entrez le nom de projet correct.
    2. dans la zone Nom du package, entrez le nom de votre package.
    3. dans la zone Nom Java de la session sans état, entrez le nom Java de votre session sans état.
    puis cliquez sur Suivant.
  8. Sur la page Méthodes Java, cliquez sur Ajouter... pour créer une méthode Java.
  9. Sur la page Méthode Java,
    1. dans la zone Type d'entrée, cliquez sur Parcourir pour trouver une entrée ou sur Nouveau pour en créer une nouvelle.
      1. Sur la page Importation de données, dans la zone Choisir le mappage, sélectionnez COBOL vers Java.
      2. dans la zone Fichier COBOL, cliquez sur Parcourir et sélectionnez votre fichier COBOL, puis cliquez sur Suivant.
      3. 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.
    2. 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.
  10. 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.


Commentaires