Vous pouvez utiliser l'assistant de création de bean géré par message EJB 3.1
pour créer un bean géré par message et l'ajouter à votre projet.
Avant de commencer
Vous devez disposer d'un projet Java™, d'un projet EJB ou d'un projet Web créé dans votre espace de travail.
Pourquoi et quand exécuter cette tâche
La principale différence entre un bean géré par message et un bean session est l'absence d'interface distante ou locale chez le premier. Il n'a qu'une classe de bean.
Procédure
- Dans la perspective Java EE, cliquez avec le bouton droit de la souris sur votre projet, puis sélectionnez . L'assistant de
création d'un bean géré par message EJB 3.1 s'ouvre.
- Dans la zone Dossier source, sélectionnez le dossier source pour le nouveau bean.
- Dans la zone Package, tapez le nom du package du nouveau bean.
- Dans la zone Nom, tapez le nom que vous voulez donner au bean géré par message. Par convention, les noms de bean commencent par une majuscule.
- Dans la zone Nom de la destination, tapez le nom que vous voulez donner à la destination.
- Sélectionnez JMS si vous voulez utiliser le service de messagerie Java, ou décochez cette case si vous voulez utiliser un autre service de messagerie.
- Dans la zone Type de destination, sélectionnez File d'attente ou
Rubrique et cliquez sur Suivant.
- Sur la page d'informations propre au bean géré par message, dans la zone Type de transaction,
sélectionnez Conteneur pour les transactions gérées par conteneur, ou Bean
pour les transactions gérées par bean.
- Cliquez sur Terminer. L'éditeur Java contient le code par défaut de votre classe de bean géré
par message :
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 {
/**
* Default constructor.
*/
public TestMdb() {
// TODO Auto-generated constructor stub
}
/**
* @see MessageListener#onMessage(Message)
*/
public void onMessage(Message message) {
// TODO Auto-generated method stub
}
}
Dans cet exemple de code de bean géré par message par défaut, il convient de remarquer plusieurs points importants :
- Dans EJB 3.1, l'annotation @MessageDriven spécifie un ensemble de paramètres de configuration d'activation. Ces paramètres sont propres au type particulier d'adaptateur JCA 1.5 utilisé pour gérer le bean géré par message. Certains
adaptateurs offrent des paramètres de configuration qui permettent de spécifier la file d'attente de destination du bean
géré par message.
Avec les autres adaptateurs, le nom de la destination doit être spécifié à l'aide d'une entrée
<message-destination> dans le fichier de liaison XML.
- La classe de bean doit implémenter l'interface MessageListener qui ne définit qu'une seule méthode, onMessage. Lorsqu'un
message arrive dans la file d'attente contrôlée par ce bean géré par message, le conteneur appelle la méthode onMessage de la classe de bean et lui passe comme paramètre le message entrant.
- La propriété ActivationConfigProperty de l'annotation @MessageDriven fournit des informations de configuration qui sont propres au système de messagerie.