Développement de beans gérés par message
Vous pouvez développer une classe d'implémentation de bean pour un bean géré par message conformément à la spécification Enterprise JavaBeans. Un bean géré par message est un consommateur de message qui implémente une logique métier et s'exécute sur le serveur.
Avant de commencer
Pourquoi et quand exécuter cette tâche
L'exemple suivant est un bean géré par message de base :
@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);
}
}
Comme pour les autres types de bean enterprise, vous pouvez déclarer les métadonnées de vos beans gérés par message dans le descripteur de déploiement plutôt qu'en utilisant des annotations. Par exemple :
<?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>
Remarque : Dans
WebSphere
Application Server version 9, la propriété
destinationLookup peut être utilisée au lieu de la propriété de configuration d'activation destination. Les deux propriétés de configuration d'activation ont la même finalité qui consiste à définir le nom JNDI de destination pour les beans gérés par message. Toutefois, lorsque les deux propriétés d'activation sont définies dans la configuration, la propriété destinationLookup est prioritaire sur la propriété destination.