IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java EE Discussion :

[EJB3] MessageDriven bean qui ne reçoit jamais de message. [EJB MDB]


Sujet :

Java EE

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2004
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 36
    Par défaut [EJB3] MessageDriven bean qui ne reçoit jamais de message.
    Bonjour,
    j'ai beau m'arracher les cheveux, je n'arrive pas à comprendre ce qui ne va pas dans mon programme.
    J'ai crée un session bean qui envoi un message sur une queue (TaskMessagesQueue):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    @Stateless
    public class SenderAgentBean
    {
      /** ConnectionFactory */
      @Resource(mappedName = "ConnectionFactory")
      private ConnectionFactory _connectionFactory;
     
      /** ConnectionFactory */
      @Resource(mappedName = "queue/TaskMessagesQueue")
      private Destination _destination;
     
     /**
       * send a JMS Message
       */
      public void sendMessage()
      {
        Connection connection = null;
        Session session = null;
     
        try
        {
          connection = _connectionFactory.createConnection();
          session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE);
          MessageProducer producer = session.createProducer(_destination);
     
     
          MapMessage msg = session.createMapMessage();
     
          msg.setStringProperty("Action", "Backup");
     
          producer.send(msg);
     
        }
        catch (JMSException e)
        {
          closeJMSConnection(connection, session);
        }
        closeJMSConnection(connection, session);
     
      }
    J'ai un MessageDriven Bean qui devrait récuperer le message envoyé (j'utilise un message selector):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    @MessageDriven(activationConfig = {
      @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
      @ActivationConfigProperty(propertyName = "destination", propertyValue = "queue/TaskMessagesQueue"),
      @ActivationConfigProperty(propertyName = "messagingType", propertyValue = "javax.jms.MessageListener"),
      @ActivationConfigProperty(propertyName = "messageSelector", propertyValue = "Action = 'Backup'"),
      @ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge") })
    public class BackupActivator implements MessageListener
    {
     
      public void onMessage(Message msg)
      {
        System.out.println("LE MESSAGE EST PASSE");
      }
    }
    Mais rien n'y fait, le message n'arrive jamais jusqu'au MessageDriven Bean...

    J'ai bien crée la queue dans JBoss :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?xml version="1.0" encoding="UTF-8"?>
     
    <server>
     
    <!-- Queues -->
     
    	<mbean code="org.jboss.mq.server.jmx.Queue"
    		name="jboss.mq.destination:service=Queue,name=TaskMessagesQueue">
    		<depends optional-attribute-name="DestinationManager">
    			jboss.mq:service=DestinationManager
    		</depends>
    	</mbean>
     
    </server>
    Bref, le onMessage() du MessageDriven bean n'est jamais déclenché...
    J'ai du zapper quelque chose, mais j'ai beau regarder, encore et encore, je vois pas...
    Si jamais peut m'aider... c'est pas de refus!
    Merci d'avance!

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Août 2004
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 36
    Par défaut
    Bon, même si ça n'a pas l'air d'intéresser grand monde, voici la solution que j'ai trouvée:

    J'ai remplacé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     /** ConnectionFactory */
      @Resource(mappedName = "ConnectionFactory")
      private ConnectionFactory _connectionFactory;
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      /** ConnectionFactory */
      @Resource(mappedName = "QueueConnectionFactory")
      private ConnectionFactory _connectionFactory;
    Voila, ça pourra peut être aider quelqu'un.

  3. #3
    Rédacteur
    Avatar de longbeach
    Profil pro
    Architecte de système d’information
    Inscrit en
    Avril 2003
    Messages
    943
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Avril 2003
    Messages : 943
    Par défaut
    Intéressant.
    Dans quel fichier JBoss crées-tu la queue ?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Août 2004
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 36
    Par défaut
    Citation Envoyé par longbeach Voir le message
    Intéressant.
    Dans quel fichier JBoss crées-tu la queue ?
    dans un fichier "my-destinations-service.xml" que j'ai crée pour l'occasion, et placé dans le repertoire "\server\default\deploy" de mon JBoss

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Text Defilant qui se cache jamais o_O
    Par snipes dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 03/06/2007, 04h40
  2. Réponses: 2
    Dernier message: 10/01/2007, 13h33
  3. Form qui ne reçoit pas des events
    Par eliek_9 dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 26/07/2006, 15h45
  4. [csv]import qui ne termine jamais
    Par banzzai dans le forum Requêtes
    Réponses: 6
    Dernier message: 14/06/2006, 21h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo