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):
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
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); }
Mais rien n'y fait, le message n'arrive jamais jusqu'au MessageDriven Bean...
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"); } }
J'ai bien crée la queue dans JBoss :
Bref, le onMessage() du MessageDriven bean n'est jamais déclenché...
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>
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!
Partager