Desarrollo de beans controlados por mensaje
Puede desarrollar una clase de implementación de bean para un bean controlado por mensaje, tal como se presenta en la especificación de Enterprise JavaBeans. Un bean controlado por mensaje (MDB) es un consumidor de mensajes que implementa la lógica empresarial y se ejecuta en el servidor.
Antes de empezar
Acerca de esta tarea
A continuación se ofrece un ejemplo de bean controlado por mensaje básico:
@MessageDriven(activationConfig={
@ActivationConfigProperty(propertyName="destination", propertyValue="myDestination"),
@ActivationConfigProperty(propertyName="destinationType", propertyValue="javax.jms.Queue")
})
public class MsgBean implements javax.jms.MessageListener {
public void onMessage(javax.jms.Message msg) {
String receivedMsg = ((TextMessage) msg).getText();
System.out.println("Received message: " + receivedMsg);
}
}
Al igual que con otros tipos de enterprise bean, también puede declarar metadatos para beans
controlados por mensajes en el descriptor de despliegue en lugar de utilizar anotaciones, por ejemplo:
<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar id="EJBJar_1060639024453" version="3.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd"
metadata-complete="false">
<enterprise-beans>
<message-driven>
<ejb-name>MsgBean</ejb-name>
<ejb-class>com.acme.ejb.MsgBean</ejb-class>
<activation-config>
<activation-config-property>
<activation-config-property-name>destination</activation-config-property-name>
<activation-config-property-value>myDestination</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>destinationType</activation-config-property-name>
<activation-config-property-value>javax.jms.Queue</activation-config-property-value>
</activation-config-property>
</activation-config>
</message-driven>
</enterprise-beans>
</ejb-jar>
Nota: En WebSphere Application Server
versión 9, la propiedad destinationLookup
también se puede utilizar, en lugar de la propiedad de
configuración de activación destination. Ambas
propiedades de configuración de activación sirven al mismo objetivo
de establecer el nombre JNDI de destino para MDB. Sin
embargo, cuando están definidas ambas propiedades de
activación en la configuración, la prioridad
destinationLookup tiene prioridad sobre la
propiedad destination.