Puede utilizar el asistente de creación de beans controlados por mensajes EJB 3.1 para crear un bean controlado por mensajes y añadirlo al proyecto.
Antes de empezar
Debe tener un proyecto Java™, un proyecto EJB o un proyecto web creado en su espacio de trabajo.
Acerca de esta tarea
La diferencia principal entre un bean controlado por mensajes y un bean de sesión es que un bean controlado
por mensajes no tiene una interfaz local o remota. En su lugar, sólo tiene una clase de bean.
Procedimiento
- En la perspectiva Java EE, pulse con el botón secundario del ratón en el proyecto y seleccione .
Se abre el asistente de creación de beans controlados por mensajes
EJB 3.1.
- En el campo Carpeta de origen, seleccione la carpeta de origen para el nuevo bean.
- En el campo Paquete, especifique el nombre de paquete para el bean nuevo.
- En el campo Nombre, escriba el nombre que desea asignar al bean controlado por mensajes. Por convenio, los nombres de bean empiezan en mayúscula.
- En el campo Nombre de destino, especifique el nombre que desea asignar al destino.
- Seleccione JMS para utilizar el servicio de mensajería Java o para deseleccionar JMS y utilizar otro servicio de mensajería.
- En el campo Tipo de destino, seleccione
el tipo de destino Cola o
Tema y pulse Siguiente.
- En la página de información específica del bean controlado por mensajes, en el campo Tipo de transacción, seleccione Contenedor para las transacciones controladas por contenedor, o Bean, para las transacciones controladas por bean.
- Pulse Finalizar. El editor Java contiene el código predeterminado para la clase de bean controlada por mensajes:
package com.ibm.test;
import javax.ejb.ActivationConfigProperty;
import javax.ejb.MessageDriven;
import javax.jms.Message;
import javax.jms.MessageListener;
/**
* Message-Driven Bean implementation class for: TestMdb
*
*/
@MessageDriven(
activationConfig = { @ActivationConfigProperty(
propertyName = "destinationType", propertyValue = "javax.jms.Queue"
) })
public class TestMdb implements MessageListener {
/**
* Constructor predeterminado.
*/
public TestMdb() {
// Tareas pendientes: Apéndice de constructor generado automáticamente
}
/**
* @see MessageListener#onMessage(Message)
*/
public void onMessage(Message message) {
// Tareas pendientes: Apéndice de método generado automáticamente
}
}
En este ejemplo de código predeterminado de bean controlado por mensajes, es importante destacar los puntos siguientes:
- En EJB 3.1, la anotación @MessageDriven especifica un conjunto de parámetros de configuración de activación. Estos parámetros son únicos para el tipo en particular de adaptador JCA 1.5 que se utiliza para gestionar el bean controlado por mensajes. Algunos adaptadores tienen parámetros de configuración que permiten especificar la cola de destino del bean controlado por mensajes. En el caso que el adaptador no soporte esta posibilidad, debe especificarse el nombre de destino mediante la entrada <message-destination> en el archivo de enlace XML.
- La clase de bean debe implementar la interfaz MessageListener,
que define solo un método onMessage. Cuando un mensaje llega a la cola supervisada por este MDB, el contenedor llama al método onMessage de la clase de bean y pasa el mensaje entrante como parámetro.
- La propiedad ActivationConfigProperty de la anotación @MessageDriven proporciona información de configuración específica del sistema de mensajería.