Code von EJB 1.1 auf EJB 2.x migrieren

Für Projekte, die von EJB 1.1 in EJB 2.x konvertiert wurden, müssen zur Migration von vorhandenem EJB 1.1-Code auf EJB 2.x bestimmte Schritte ausgeführt werden.

Anmerkung: EJB 2.x-Beans werden nur in einem EJB 2.x-Projekt unterstützt (obwohl ein 2.x-Projekt auch 1.1-Beans unterstützt).
  1. Ersetzen Sie bei jeder 1.1-CMP-Bean alle CMP-Felder durch die abstrakten Methoden getXXX und setXXX. (Dann muss die Beanklasse abstrakt sein.)
  2. Erstellen Sie für jede CMP eine abstrakte Methode getXXX und setXXX für den Primärschlüssel.
  3. Erstellen Sie für jede CMP 1.1-Finder-Methode eine EJBQL-Methode (EJBQL, EJB Query Language) für jede Finder-Methode.
    Anmerkung: Für die EJB Query Language gelten in Rational Application Developer V6.0 die folgenden Einschränkungen:
    • EJB Query Language-Abfragen, bei denen EJBs mit Schlüsseln verwendet werden, die aus Beziehungen zu anderen EJBs bestehen, werden als ungültig angezeigt und verursachen Fehler bei der Implementierung.
    • Die IBM EJB Query Language-Unterstützung erweitert die EJB 2.x-Spezifikation auf verschiedene Arten, beispielsweise durch das Aufheben einiger Einschränkungen und das Hinzufügen von Unterstützung für weitere DB2-Funktionen usw. Wenn die Portierbarkeit zu Datenbanken anderer Hersteller oder das EJB-Implementierungstool Probleme verursachen, muss sorgfältig darauf geachtet werden, dass alle Abfragen in EJB Query Language streng nach den in Kapitel 11 der EJB 2.x-Spezifikation aufgeführten Anweisungen geschrieben werden.
  4. Geben Sie für jeden 1.1-CMP-Finder java.util.Collection statt java.util.Enumeration zurück.
  5. Ändern Sie für jede 1.1-CMP-Bean alle Vorkommen von this.field = value in setField(value) in ejbCreate() und an den anderen Stellen im gesamten Code.
  6. Aktualisieren Sie die Behandlung von Ausnahmebedingungen (ROLLBACK-Verhalten) bei Ausnahmebedingungen, die nicht für Anwendungen ausgegeben werden:
    • Lösen Sie javax.ejb.EJBException anstelle von java.rmi.RemoteException aus, um Ausnahmebedingungen zu melden, die nicht für Anwendungen ausgegeben werden.
    • In EJB 2.x und 1.1 führen alle Ausnahmebedingungen, die durch das Exemplar nicht für Anwendungen ausgegeben werden, zu einer ROLLBACK-Operation der Transaktion, in der das Exemplar ausgeführt wurde, und zum Löschen des Exemplars.
  7. Aktualisieren Sie die Behandlung von Ausnahmebedingungen (ROLLBACK-Verhalten) bei Ausnahmebedingungen für Anwendungen:
    • In EJB 2.x und 1.1 führt eine Ausnahmebedingung für Anwendungen nicht dazu, dass der Container automatisch eine ROLLBACK-Operation für die Transaktion ausführt.
    • In EJB 1.1 führt der Container die ROLLBACK-Operation nur dann aus, wenn das Exemplar unter Verwendung der Methode setRollbackOnly() für sein Objekt "EJBContext" aufgerufen wurde.
  8. Aktualisieren Sie sämtliche CMP-Einstellungen von anwendungsspezifischen Standardwerten, sodass sie sich in ejbCreate befinden (verwenden Sie dabei keine globalen Variablen, da EJB 1.1-Container alle Felder auf generische Standardwerte setzten, bevor sie ejbCreate aufrufen; dadurch werden alle vorherigen anwendungsspezifischen Standardeinstellungen überschrieben).

Übergeordnetes Thema: Migration von Enterprise JavaBeans-Projekten (EJB 1.1 auf EJB 2.1)

Vorheriges Thema: Projekte von EJB 1.1 in EJB 2.x konvertieren
Nächstes Thema: Migration von EJB-Verweisen für EJB 1.1-Beziehungen

Zugehörige Tasks
Migration von Enterprise JavaBeans-Projekten (EJB 1.1 auf EJB 2.1)
Projekte von EJB 1.1 in EJB 2.x konvertieren
Migration von EJB-Verweisen für EJB 1.1-Beziehungen

Zugehörige Verweise
Zusammenfügung der Methodenelemente während der Projektstrukturmigration

(C) Copyright IBM Corporation 2000, 2004. All Rights Reserved. (C) Copyright IBM Deutschland GmbH und andere 2000, 2004. Alle Rechte vorbehalten.