Как запустить MessageDrivenBean

#jakarta-ee #ejb #message-driven-bean

#джакарта-ee #ejb #компонент, управляемый сообщениями

Вопрос:

У меня есть веб-приложение, и внутри серверной части я создал MessageDrivenBean, чтобы получать сообщения через JMS.

 @MessageDriven(activationConfig = {
@ActivationConfigProperty(propertyName = "destinationType", propertyValue =  javax.jms.Queue"),
@ActivationConfigProperty(propertyName = "destination", propertyValue = "queue/toServer"), })
public class JMSWatcher implements MessageListener {
...
...
public void onMessage(Message message) {
   ....
}
  

Но метод onMessage никогда не будет вызван, даже если я отправлю сообщение в очередь / на сервер, как настроено.

Нужно ли мне вызывать этот компонент один раз из клиентского приложения или мне нужно поместить класс в любой конфигурационный XML-файл?

Спасибо, Хауке

PS.: Я поместил некоторое сообщение журнала в конструктор по умолчанию класса JMSWatcher, но оно также не будет отображаться.

Комментарии:

1. Вы, конечно, не вызываете какую-либо часть MDB самостоятельно. Объясните, как вы развертываете свой MDB, на каком сервере, где определена «очередь / toServer»… Это то, что важно

Ответ №1:

Я использую JBoss 7.0.2, поэтому я использую HornetQ в качестве сервера JMS. Я правильно настроил очередь JMS, потому что я могу отправлять сообщения в очередь без каких-либо проблем и могу получать их, если я делаю это по-старому (без MDB).

Я использую Eclipse и создаю проект с помощью maven. У меня есть файл ear, развернутый с модулем сервера и клиента.

Внешний процесс будет отправлять сообщения в очередь (это работает).

Я подумал, что если я сделаю несколько отладочных сообщений внутри конструктора и разверну свой файл ear, то я должен увидеть это сообщение после развертывания один раз.

Мне не нужно помещать MDB в какой-либо XML-файл, такой как ServletContextListener в моем веб-проекте в web.xml ?

Я использую JSF 2, поэтому мне не нужно помещать этот компонент в свой faces-config.xml ? Я не использую faces-config.xml вообще (в данный момент).