Ya que la interfaz y el EJB tienen una jerarquía diferente, se da comunmente el caso en el cual la interfaz tiene una firma determinada para un método, pero el EJB otra.
Para solucionar el problema y capturar esta incoherencia en tiempo de desarrollo (en la compilación), se utiliza comunmente el patrón llamado Business Methods Interface. En este patrón la interface (local o remota) y la implementación (el EJB) implementan la misma interface (business methods).
Por ejemplo, si quisiéramos implementar ciertas funcionalidades de negocio en un EJB con interfaz local, crearíamos primero una Business Methods Interface, donde definiríamos nuestro métodos de negocio:
public interface MyBusinessInterface {y en base a ella crearíamos el EJB, con la implementación de estos métodos:
public void myBusinessMethod1 ( ... );
...
}
import javax.ejb.SessionBean;y por último la interfaz local, extendiendo también de MyBusinessInterface:
public class ExampleEJB implements SessionBean,
MyBusinessInterface {
public void myBusinessMethod1 ( ... ) {
...
}
...
}
import javax.ejb.EJBLocalObject;En el caso de necesitar una interfaz remota, los métodos de la Business Methods Interface deberían lanzar RemoteException, tal como es requerido por la especificación de EJB.
public interface ExampleLocal extends EJBLocalObject,
MyBusinessInterface {
}
De esta forma queda asegurada en tiempo de compilación la integridad de ambos componentes entre si.
No hay comentarios:
Publicar un comentario