Está en la página 1de 15

Especialista en Aplicaciones y Servicios

Web con Java Enterprise

Enterprise JavaBeans
Sesión 3:
Beans de sesión con estado

Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Beans de sesión con estado 1
Beans de sesión

 Proporcionan un conjunto de funcionalidades y


servicios a clientes
 No son persistentes, no representan datos existentes
en un almacén de datos, aunque pueden acceder a
ellos
 Modelan procesos de negocio, como solicitar un
listado, enviar una notificación, ...
 Suelen recibir nombres como ServicioBroker o
GestorContratos

Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Beans de sesión con estado 2
Beans de sesión con estado

 Definen variables de instancia que almacenan datos


específicos del cliente
 Estos datos se guardan con operaciones
denominadas setXXX como setNombre o
setDireccion
 Se suelen usar para implementar métodos de
negocios que requieren multiples pasos de ejecución
 El estado del bean dura el tiempo de sesión y no es
persistente
 Ejemplo típico: carrito de la compra

Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Beans de sesión con estado 3
Arquitectura beans de sesión con estado

Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Beans de sesión con estado 4
El bean Cart

 Bean de sesión con estado que implementa un


carrito de la compra
 Los clientes podrán llamar a los métodos:
 addBook(String title)
 removeBook(String title)
 ArrayList[Strings] getBookTitles()
 double getOrderPrice()
 Ficheros Java necesarios:
 CartBean.java: implementación
 Cart.java: interfaz remota
 CartHome.java: interfaz home
Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Beans de sesión con estado 5
La clase CartBean

 Implementa la interfaz SessionBean


 Creación de instancias: ejbCreate(args)
 Uso del bean: los métodos de negocio del bean:

void addBook(String title)


void removeBook(String title)
ArrayList[Strings] getBookTitles()
double getOrderPrice()

 Borrado del bean: public void ejbRemove();

Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Beans de sesión con estado 6
Requisitos de la clase Bean

 Implementa la interfaz SessionBean


 La clase se define como public
 No puede definirse como abstract ni final
 Implementa uno o más métodos ejbCreate (no están
en la interfaz SessionBean)
 Implementa los métodos remotos definidos en la
interfaz componente del bean

Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Beans de sesión con estado 7
El código fuente

 Examinar el código fuente del fichero


sesion3/beans/CartBean.java
 Identificar si cumple los requisitos:
 ¿Qué interfaz implementa?
 ¿Define algún método ejbCreate? ¿Cuántos?
 ¿Implementa los métodos de negocio?
 Identficar cuestiones adicionales:
 ¿Tiene variables de instancia definidas?
 ¿Cuáles son? ¿Dónde se actualizan?

Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Beans de sesión con estado 8
Las variables de instancia

 Guardan el estado del cliente


 Se inicializan en el método ejbCreate y pueden
copiarse en ellas los argumentos del método
 Se modifican en los métodos de negocio
 Son:

String customerName
String customerId
Collection contents

Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Beans de sesión con estado 9
Los métodos ejbCreate

 Los llama el contenedor EJB cuando el EJBHome


recibe una petición de creación de una nueva
instancia
 Se definen también en la interfaz home
 Inicializan el estado del bean
 Requisitos:
 Deben ser public y no pueden ser static ni final
 El tipo de retorno debe ser void
 Si el bean permite acceso remoto los argumentos deben
ser tipos legales RMI

Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Beans de sesión con estado 10
Los métodos de negocio de la clase Bean

 Se ejecutan a petición del EJBObject, cuando éste


recibe una petición del cliente
 Requisitos:
 El modificador de acceso debe ser public
 Si el bean permite acceso remoto, los argumentos y tipos
devueltos deben ser compatibles con RMI
 Pueden arrojar excepciones definidas por la
aplicación, por ejemplo que se quiere eliminar el
libro no se encuentra en el carrito
 Para declarar excepciones del sistema deberían
arrojar la excepción EJBException, que es del tipo
RuntimeException

Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Beans de sesión con estado 11
La interfaz CartHome

 Extiende la interfaz EJBHome o EJBLocalHome


 Creación de instancias del bean:
Cart create(args) throws CreateException
RemoteException
 Uso del bean: no tiene operaciones de este tipo
 Borrado del bean: public void remove();

Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Beans de sesión con estado 12
Reglas a aplicar

 El número y tipo de argumentos en las funciones


ejbCreate en la clase bean debe corresponderse con
las funciones create definidas en la clase home
 Los tipos de argumentos y valores deben ser
compatibles con RMI
 Los métodos create deben devolver siempre un
objeto de tipo EJBObject o EJBLocalObject
 El método create debe declarar las excepciones
RemoteException y CreateException

Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Beans de sesión con estado 13
La interfaz Cart

 Extiende la interfaz EJBObject o EJBLocalObject


 Creación de instancias del bean: no tiene operaciones de este
tipo
 Uso del bean:

void addBook(String title)


void removeBook(String title)
ArrayList[Strings] getBookTitles()
double getOrderPrice()

 Borrado del bean: public void remove();

Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Beans de sesión con estado 14
Reglas a aplicar

 Cada método de la interfaz se debe corresponder


con un método equivalente en la clase bean
 Todos los argumentos y valores deben ser
compatibles con RMI
 Si el bean es remoto, todos los métodos deben
definir la excepción RemoteException

Enterprise Jav aBeans Copyright © 2005-2006 Univ ersidad de Alicante Beans de sesión con estado 15

También podría gustarte