Я разрабатываю веб-приложение, используя JBoss 6.1 в качестве серверной части.
Я создал компонент, управляемый сообщениями, со свойством "destination": "queue/searchtabQueue" и свойством "destination type" "javax.jms.Queue".
Как описано в разделе https://community.jboss.org/wiki/HowToCreateJMSQueuetopicInAS6, мне удалось создать свой очередь "queue/searchtabQueue" ("searchtab-hornetq-jms.xml"):
<configuration xmlns="urn:hornetq"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:hornetq /schema/hornetq-jms.xsd">
<queue name="searchtabQueue">
<entry name="/queue/searchtabQueue"/>
</queue>
</configuration>
После развертывания в консоли администратора я вижу свою очередь в разделе «Очереди JMS» со статусом «вверх».
В bean-компоненте без сохранения состояния я ищу очередь, которая работает правильно, а также отправка не вызывает исключений:
Context ctx = new InitialContext(p); // Create the initial context
ConnectionFactory factory = (ConnectionFactory) ctx.lookup("ConnectionFactory");
Queue queue = (Queue) ctx.lookup("queue/searchtabQueue");
Connection connect = factory.createConnection();
javax.jms.Session session = connect.createSession(false, 0);
MessageProducer sender = session.createProducer(queue);
TextMessage msg = session.createTextMessage();
msg.setText("abc");
sender.send(msg);
connect.close();
Но метод onMessage компонента, управляемого сообщениями, не вызывается.
Что мне не хватает?
Заранее большое спасибо
Вольфганг
Обновление: мой MDB-код:
Мой компонент, управляемый сообщениями, имеет следующий код:
@MessageDriven(activationConfig = {
@ActivationConfigProperty(propertyName = "destinationType",
propertyValue = "javax.jms.Queue"),
@ActivationConfigProperty(propertyName = "destination",
propertyValue = "queue/searchtabQueue"),
@ActivationConfigProperty(propertyName = "acknowledgeMode",
propertyValue = "Auto-acknowledge")
})
public class SearchTableBean implements MessageListener {
public void onMessage (Message message) {
}
}