Poco a poco los standards van madurando y aunque durante muchos años hemos usado Spring,Struts,Hibernate como framework de referencia poco a poco los standards van ocupando también su lugar y el mercado se dividirá de una forma mas igualitaria. En este primer post comenzaremos a trabajar con EJBs.
Un EJB (Enterprise Java Bean) es un componente que debe ejecutarse de un contenedor de EJBs y se diferencia bastante de un JavaBean normal. Un JavaBean es un objeto Java al cual accedemos de forma directa desde nuestro programa.
Sin embargo un EJB es un componente al cual no podemos acceder de una forma tan directa y siempre accedemos a traves de algún tipo de intermediario.
Este intermediario nos aportará una serie de servicios definidos por los standards en los cuales el EJB se puede apoyar .Vamos a construir en este post un EJB básico concretamente un EJB de Sessión que son los mas habituales.Los EJB de sessión disponen de dos proxies (intermediarios) a traves de los cuales accedemos a ellos .
- Proxy Local : Es el intermediario que nos permite un acceso al EJB desde la misma maquina virtual.
- Proxy Remoto :Es el intermediario que nos permite el acceso al EJB desde una maquina virtual remota.
Estos proxies son los encargados de dar acceso al EJB a todos los servicios adicionales que soporta el EJB Container como son Transaccionalidad,Seguridad etc.Para construir un EJB de Sessión deberemos definir los interfaces de acceso local y remoto en los cuales los proxies se apoyarán.
Cada uno de estos interfaces se encarga de definir los métodos que estarán a disposición de los clientes que los invocan.Una vez hemos hecho una pequeña introducción vamos a contruir con Eclipse nuestro primer EJB. Para ello pulsaremos sobre File>New>EJBProject
Una vez hecho esto asignaremos un nombre al proyecto de EJB (EJBHolaMundo) y pulsaremos finalizar
Una vez finalizado tendremos disponible un nuevo proyecto de EJBs con el que comenzar a desarrrollar nuestros primeros Enterprise Java Beans. Pulsaremos boton derecho >New>SessionBean (3.x)
Una vez realizada esta operación asignaremos package, nombre de clase e interface local ( por ahora no usaremos interface remoto) y pulsaremos sobre finalizar.
Realizada esta operación dispondremos de dos ficheros uno el propio SessionBean y el otro su interface local.
SessionBean
package com.arquitecturajava.ejb;
import javax.ejb.LocalBean;
import javax.ejb.Stateless;
/**
* Session Bean implementation class Hola
*/@Stateless
public class Hola implements HolaLocal {
/**
* Default constructor.
*/ public Hola() {
// TODO Auto-generated constructor stub
}
}
Interface Local
package com.arquitecturajava.ejb;
import javax.ejb.Local;
@Local
public interface HolaLocal {
}
Por ultimo pasaremos a modificarlos añadiendo un método en el interface e implementando la funcionalidad en el SessionBean.
package com.arquitecturajava.ejb;
import javax.ejb.Local;
@Local
public interface HolaLocal {
public String mensaje();
}
package com.arquitecturajava.ejb;
import javax.ejb.Stateless;
@Stateless
public class Hola implements HolaLocal {
public Hola() {
}
@Override
public String mensaje() {
return "hola desde un ejb de session";
}
}
Una vez hecho esto acabamos de construir nuestro primer EJB el siguiente paso será desplegar el EJB en un servidor de aplicaciones para poder acceder a él.