EJB: Guía completa para crear Message Driven Beans (MDB)

EJB: Guía completa para crear Message Driven Beans (MDB)

Los Message Driven Beans (MDB) son un componente fundamental de la arquitectura EJB que permite a las aplicaciones Java responder a eventos asíncronos, como mensajes recibidos de colas o temas. Esta característica los hace ideales para construir sistemas distribuidos, desacoplados y tolerantes a fallas, permitiendo que diferentes componentes de una aplicación se comuniquen de forma asíncrona sin necesidad de estar conectados simultáneamente.

Este artículo te guiará paso a paso a través del proceso de crear un Message Driven Bean y un cliente que envía mensajes a una cola. Aprenderás sobre la configuración de las propiedades del MDB, la implementación de la interfaz MessageListener y cómo procesar mensajes recibidos, utilizando un Stateless Session Bean para la persistencia en base de datos.

Creando un Message Driven Bean (MDB)

El primer paso es crear el MDB. Para esto, debes implementar la interfaz javax.ejb.MessageDrivenBean y la interfaz javax.jms.MessageListener. La implementación de la interfaz MessageListener es crucial, ya que define el método onMessage que será llamado cuando el MDB reciba un mensaje.

Configurando las propiedades de destino

Para que el MDB pueda recibir mensajes, necesitas configurar las propiedades de destino. Esto se realiza mediante anotaciones en la clase del MDB. En el ejemplo, se usará la anotación @MessageDriven para especificar la cola a la que se conectará el MDB, así como otros parámetros como la configuración de transacciones y la seguridad.

Implementando el método onMessage

El método onMessage es el corazón del MDB. Es aquí donde se realiza el procesamiento del mensaje recibido. En este ejemplo, el mensaje contendrá información sobre un libro, que se persistirá en la base de datos. Para ello, se utilizará un Stateless Session Bean que encapsula la lógica de acceso a la base de datos.

LEER:  Git Pull: Actualiza tu Repositorio Local con Este Comando Esencial

Creando un cliente para enviar mensajes a la cola

El siguiente paso es crear un cliente que envíe mensajes a la cola. Este cliente será responsable de crear mensajes que contengan la información de los libros y enviarlos a la cola para que sean procesados por el MDB.

Conectando con la cola utilizando JNDI

El cliente utiliza la API JNDI para obtener una referencia a la cola a la que se enviarán los mensajes. JNDI (Java Naming and Directory Interface) es una API estándar de Java que permite a las aplicaciones acceder a recursos en un servidor de nombres.

Enviando mensajes a la cola

Una vez que el cliente ha obtenido una referencia a la cola, puede enviar mensajes a la misma. En el ejemplo, el cliente ofrece un menú al usuario para agregar libros. La información del libro se convierte en un mensaje y se envía a la cola.

Ejecutando el cliente y el MDB

Para probar la aplicación, se ejecuta el cliente, que enviará mensajes a la cola. El MDB escuchará la cola y procesará cada mensaje recibido, persistiendo la información del libro en la base de datos.

Ejemplo de ejecución

La ejecución del cliente mostrará un menú para agregar libros. Al ingresar la información del libro, este se envía a la cola y es procesado por el MDB. La salida en la consola mostrará la confirmación de la persistencia del libro en la base de datos.

Resumen

Los Message Driven Beans (MDB) son una herramienta poderosa en EJB para construir aplicaciones que respondan a eventos asíncronos. Permiten la comunicación desacoplada entre diferentes componentes, mejorando la escalabilidad, la tolerancia a fallas y la eficiencia de la aplicación. Este artículo ha presentado una guía completa para crear un MDB, incluyendo la configuración de las propiedades de destino, la implementación del método onMessage y la creación de un cliente para enviar mensajes a la cola.

LEER:  SAP UI5 Tutorial: Guía Completa para Principiantes