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

Determine el modelo de mensajería que desee para la aplicación en relación con el uso de temas, colas, productores y consumidores, publicación o suscripción, etc. Puede consultar el contrato del componente de bean controlado por mensaje que se describe en la especificación de Enterprise JavaBeans.

Acerca de esta tarea

Un bean controlado por mensaje (MDB) es un consumidor de mensajes de un proveedor JMS (Java™ Message Service). Un MDB se invoca al llegar un mensaje al destino o punto final al que el MDB presta servicio. Las instancias de MDB son anónimas y, por lo tanto, todas las instancias son equivalentes cuando no prestan servicio activamente a un mensaje de cliente. El contenedor controla el ciclo de vida de las instancias de bean, que no contienen ningún estado que sea visible para un cliente.

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.

Procedimiento

Resultados

Ha desarrollado un bean controlado por mensaje sencillo, junto con algunas opciones de despliegue y empaquetado.

Qué hacer a continuación

Lea la información relacionada con el diseño de aplicaciones empresariales que utilizan beans controlados por mensaje.

Icon that indicates the type of topic Task topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tejb_mdb
File name: tejb_mdb.html