Как начать сообщениеDrivenBean - PullRequest
       51

Как начать сообщениеDrivenBean

0 голосов
/ 27 октября 2011

У меня есть веб-приложение, и внутри серверной части я создал 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-файл конфигурации?

Спасибо, Hauke ​​

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

1 Ответ

0 голосов
/ 28 октября 2011

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

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

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

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

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

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

...