Recibiendo las notificaciones de un XMBean

0
6266

Recibiendo las notificaciones de un XMBean

Entorno

Los ejemplos de este tutorial están hechos con el siguiente entorno de desarrollo:

  • Jboss Eclipse IDE Milestone 5.
  • JDK 1.5
  • JBoss 4.0.5 GA

<

Introducción

Este tutorial es una continuación de dos anteriores llamados MBeans y JBoss:

http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=MBeansJBoss

y XMBeans y JBoss:

http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=XMBeans

En este último tutorial, os mostré como crear un XMBean y
registrarlo en el servidor de MBeans de JBoss, así como añadirle la persistencia.  Sin embargo, nos
quedó pendiente hacer algun ejemplo de envío y recepción de notificaciones.

Ya os comenté que los MBeans envían notificaciones cuando
se registran o cuando algún atributo es modificado, sin
necesidad de añadir nada.  Pero, nuestro objetivo es enviar
notificaciones cuando alguien invoque el método formatFecha del
XMBean que hicimos en el tutorial anterior. Vamos a modificar el
código del método formatFecha XMBean XFecha para que envíe notificaciones:

Ahora, lo que necesitamos es alguien que escuche las notificaciones que se envían desde el nuestro Bean.

CREANDO EL MBEAN RECEPTOR

Para crear un MBean que reciba notificaciones (un listener), nuestro objetivo se crean un MBean que implemente el interfaz: ListenerServiceMBean.

Han de implementar este interfaz, todos aquellos MBeans
que quieran recibir notificaciones. Alguno preguntará,
¿todas las notificaciones? No, solamente recibirá
aquellas notificaciones a las que se subscriba (parecido a un topic JMS).

Además, para facilitarnos las cosas, al igual que ocurría con el interfaz ServiceMBean en el que Jboss nos regala una implementación del mismo en la clase ServiceMBeanSupport,  ocurre que existe una implementación de ListenerServiceMBean en la clase: ListenerServiceMBeanSupport. Este consta de los siguientes métodos:

 Los tres primeros
nos sirven para suscribirnos / darnos de baja de manera dinámica
de alguna suscripción. El últimos de ellos es el que
más nos interesa, ya que será el método de nuestro
MBean que se invoque cuando se produzca alguna notificación a la
que estemos suscritos (algo parecido al método onMessage de un
MDB).

Dicho esto, lo primero que haremos es crearnos el interfaz: XFechaListenerMBean

Recordad que el nombre del interfaz debe acabar en MBean.

Ahora, nos crearemos la clase del Bean: XFechaListener:

Ahora nos creamos el descriptor del listener (jboss-service.xml):

En SubscriptionList le indicamos los MBeans de los que queremos recibir
notificaciones. Nosotros le hemos indicado que queremos recibir
cualquier notificación emitida por un MBean que esté bajo
el dominio: autentia.tutoriales.paco

Una vez llegado aquí, crearos el «.sar», desplegadlo e id a la consola jmx:

consola JMX

Seleccionad el Bean XFormateadorFechaActual e invocad el método formatFecha y comprobad las trazas:

resultado

Comprobaréis que recibiréis la notificación de la
invocación al método. También recibiréis
notificaciones cuando se modifica el atributo formato o se inicia
XFormateadorFechaActual.

Bueno, lo importante de todo esto es que se os ocurran ideas donde
aplicar lo que os he enseñado en estos últimos
tutoriales, ya que aprender a hacerlo es cuestión de mirar
documentación.

Si nos necesitáis, ya sabéis donde buscarnos: http://www.autentia.com

Dejar respuesta

Please enter your comment!
Please enter your name here