Migrar código de EJB 1.1 a EJB 2.x

En el caso de los proyectos que se conviertan de EJB 1.1 a EJB 2.x, hay que realizar unos cuantos pasos para migrar el código existente en EJB 1.1 a EJB 2.x.

Nota: Los beans de EJB 2.x solo se pueden utilizar en un proyecto de EJB 2.x (aunque en un proyecto de 2.x también se pueden utilizar beans de 1.1).
  1. Para los beans CMP de 1.1, sustituya cada campo CMP por los métodos abstractos getXXX y setXXX. (Por lo tanto, la clase de bean también debe ser abstracta).
  2. Para los CMP, cree un método abstracto getXXX y setXXX para la clave primaria.
  3. Para los métodos de búsqueda CMP de 1.1, cree un método EJBQL (lenguaje de consulta EJB) para cada método de búsqueda.
    Nota: El lenguaje de consulta EJB tiene las siguientes limitaciones en Rational Application Developer V6.0:
    • Las consultas del lenguaje de consulta EJB en las que intervienen beans EJB con claves que se componen de relaciones con otros beans EJB no resultarán válidas y provocarán errores en el momento del despliegue.
    • El soporte del lenguaje de consulta EJB de IBM amplía la especificación EJB 2.x de diversas maneras, entre ellas las de relajar algunas restricciones, añadir soporte para más funciones de DB2, etcétera. Si le interesa la portabilidad entre las bases de datos de diversos proveedores o entre las herramientas de despliegue EJB, tendrá que tener cuidado de escribir todas las consultas del lenguaje de consulta EJB de forma que estén estrictamente de acuerdo con las instrucciones indicadas en el capítulo 11 de la especificación EJB 2.x.
  4. Para los métodos de búsqueda CMP de 1.1, devuelva java.util.Collection, en lugar de java.util.Enumeration.
  5. Para los beans CMP de 1.1, cambie todas las apariciones de this.field = value por setField(value) en el método ejbCreate() y en cualquier otra parte del código.
  6. Actualice el manejo de excepciones (comportamiento de la retrotracción) para las excepciones que no sean de la aplicación:
    • Lance javax.ejb.EJBException, en lugar de java.rmi.RemoteException, para informar de las excepciones que no sean de la aplicación.
    • En EJB 2.x y 1.1, todas las excepciones que no sean de la aplicación y que haya lanzado la instancia provocan la retrotracción de la transacción en la que se ejecutaba la instancia, así como el descarte de la instancia.
  7. Actualice el manejo de excepciones (comportamiento de la retrotracción) para las excepciones de la aplicación:
    • En EJB 2.x y 1.1, una excepción de la aplicación no hace que el contenedor retrotraiga automáticamente una transacción.
    • En EJB 1.1, el contenedor realiza la retrotracción solamente si la instancia se invocó con el método setRollbackOnly() en el objeto EJBContext.
  8. Actualice los valores CMP de los valores predeterminados específicos de la aplicación para que estén dentro de ejbCreate (no lo haga utilizando variables globales, porque los contenedores de EJB 1.1 establecen todos los campos en valores predeterminados genéricos antes de llamar a ejbCreate, que sobrescribirá los valores predeterminados anteriores que sean específicos de la aplicación).
Tareas relacionadas
Migrar proyectos JavaBeans (de EJB 1.1 a EJB 2.1)
Convertir proyectos de EJB 1.1 a EJB 2.x
Migrar las referencias de EJB para las relaciones de EJB 1.1
Referencia relacionada
Los elementos de método se fusionan durante la migración de la estructura del proyecto
Comentarios
(C) Copyright IBM Corporation 2000, 2005. Reservados todos los derechos.