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…
-
Solamente tenemos ahora que desplegarlo:
-
Añadimos un nuevo bean
-
Incluimos en el Path el fichero .class de nuestro nuevo Bean
-
Le asignamos tipo y clase
-
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