Migration du code EJB 1.1 vers EJB 2.x

Il est nécessaire de suivre une procédure pour migrer le code EJB 1.1 vers EJB 2.x pour les projets convertis d'EJB 1.1 à EJB 2.x.

Remarque : Les beans EJB 2.x sont pris en charge uniquement dans un projet EJB 2.x (bien qu'un projet 2.x prenne également en charge les beans 1.1).
  1. Pour chaque bean CMP 1.1, remplacez chaque zone CMP avec des méthodes getXXX et setXXX abstraites. (La classe de bean doit être abstraite.)
  2. Pour un bean CMP, créez une méthode getXXX et setXXX abstraite pour la clé primaire.
  3. Pour toute méthode de localisation CMP 1.1, créez une méthode EJBQL (EJB Query Language).
    Remarque : EJB Query Language comporte les limitations suivantes dans Rational Application DeveloperRational Web Developer version 6.0 :
    • Les demandes EJB Query Language impliquant des EJB avec des clés constituées de relations avec d'autres EJB apparaissent comme étant non valides et provoquent des erreurs lors du déploiement.
    • Le support IBM EJB Query Language développe la spécification EJB 2.x de différentes manières. Certaines restrictions sont moins strictes et un plus grand nombre de fonctions DB2 sont prises en charge, par exemple. Si la portabilité entre les différentes bases de données ou les outils de déploiement EJB constitue un point important, il est nécessaire de rédiger les demandes EJB Query Language en respectant strictement les instructions apparaissant dans le chapitre 11 de la spécification EJB 2x.
  4. Pour une méthode de localisation (finder) CMP 1.1, renvoyez java.util.Collection au lieu de java.util.Enumeration.
  5. Pour un bean CMP 1.1, modifiez toutes les occurrences de this.field = value en setField(value) dans ejbCreate() et partout ailleurs dans le code.
  6. Mettez à jour le traitement des exceptions (comportement de la fonction d'annulation) pour les exceptions ne concernant pas des applications :
    • Lancez javax.ejb.EJBException au lieu de java.rmi.RemoteException pour signaler des exceptions ne concernant pas des applications.
    • Dans EJB 2.x et 1.1, toutes les exceptions ne concernant pas des applications qui ont été lancées par l'instance se traduisent par l'annulation de la transaction dans laquelle l'instance est exécutée, et par l'élimination de l'instance.
  7. Mettez à jour le traitement des exceptions (comportement de la fonction d'annulation) pour les exceptions ne concernant pas des applications :
    • Dans EJB 2.x et 1.1, une exception d'application n'oblige pas le conteneur à annuler automatiquement une transaction.
    • Dans EJB 1.1, le conteneur procède à l'annulation uniquement si l'instance est appelée via la méthode setRollbackOnly() sur son objet EJBContext.
  8. Mettez à jour les valeurs par défaut propres à un paramètre CMP afin qu'elles soient comprises dans une méthode ejbCreate (sans utiliser de variables globales dans la mesure où les conteneurs EJB 1.1 affectent à toutes les zones des valeurs par défaut génériques sans appeler ejbCreate dans le but de remplacer les valeurs par défaut propres à l'application précédente).
Tâches associées
Migration de projets EJB (EJB 1.1 vers EJB 2.1)
Conversion des projets d'EJB 1.1 en EJB 2.x
Migration de références d'EJB pour les relations EJB 1.1
Référence associée
Les éléments des méthodes sont fusionnés lors de la migration des structures de projets