Message-Driven Beans al instante

0
27106

EJBs para JMS

Si recordais nuestro
tutorial sobre logs y JMS
, creamos un cliente y un servidor capaces de
gestionar mensajes a través de JMS.

Creamos en es caso un cliente y servidor simples.

Ahora vamos a hacer una cosa igual de rápida y sencilla…… vamos a crear
un EJB de un nuevo tipo… especializado en gestionar este tipo de mensajes….
es decir, vamos a sustituir la aplicación que consuma los mensajes por un EJB.

Un Message-Driven Bean es un tipo de EJB nuevo el cual, a diferencia que los
otros EJBs que hemos visto hasta ahora…. no tiene interfaces Home y Remoto
….. solo tiene un metodo (entre comillas) que es invocado cada vez que la cola
a la que se liga en despliegue, recibe un mensaje (permitiendo filtros).

El código es tan sencillo como el mecanismo de un chupete …. hemos copiado
el que viene en el tutorial de EJBs de Sun (aunque es que tampoco hay muchos
mas modos de hacerlo ;-)), adaptándolo un poco (hemos dejado
algunas llamadas relaccionadas con la transaccionabilidad para el futuro)

Basicamente iremos consumiendo los mensajes a medida que lleguen…

  1. Solamente tenemos ahora que desplegarlo:

  2. Añadimos un nuevo bean

  3. Incluimos en el Path el fichero .class de nuestro nuevo Bean

  4. Le asignamos tipo y clase

  5. Asignamos la cola y filtro de escucha

Y ahora, si mandamos un mensaje desce una aplicación (os
recordamos el código)

Y solo tenemos que comprobar en el log del servidor de aplicaciones, como
responde adecuadamente nuestro EJB.

Mostramos el detalle del fichero C:\j2sdkee1.3.1\logs\rautentia\j2ee\j2ee\system.out

rmic ejbfacturas.iFacturaItemHome…
Deploying message driven bean receptorMensajesEJB, consuming from ColaRoberto
Binding name:java:comp/env/ejb/entidadfactura
Binding name:java:comp/env/ejb/entidadfacturacmp
EJB receptorMensajesEJB: Mensaje recibido: Nuevo mensaje Fri Oct 03 16:38:49 CEST 2003
remove

Bueno … sencillo verdad … 

Esto del java no es complicado …. el problema es que es la suma de 100
millones de cosas simples …. jejejeje

Sobre el
Autor ..

Dejar respuesta

Please enter your comment!
Please enter your name here