Реализация ExceptionListener в MessageListener

Наша структура следующая: BaseQueue -> Сообщение копируется в очередь копирования (откуда мы читаем)

Подключение к Queuemanager/Queue осуществляется через адаптер ресурсов wmq.jmsra.rar.

Поэтому я просто хочу читать сообщения из очереди. Я не хочу посылать ответ.

Поэтому я реализовал MessageListener и настроил очередь через файл ejb-jar.xml.

Все это работает нормально, но теперь я хочу реализовать ExceptionListener для обработки потерь соединения и т. д.

Я подумал, что было бы неплохо просто реализовать интерфейс ExceptionListener следующим образом:

public class MdB implements MessageListener, ExceptionListener {
    @Override
    public void onMessage(Message arg0) {
         ...
    }

    @Override
    public void onException(JMSException arg0) {
         ...
    }
}

Но кажется этого недостаточно, так как метод onException никогда не вызывается из адаптера ресурсов.

Может кто-нибудь мне помочь? Возможно, было бы достаточно получить соединение, которое использует адаптер ресурсов, и установить прослушиватель исключений для этого объекта, но я не смог найти способ получить объект соединения.

Спасибо


person KRONWALLED    schedule 06.06.2016    source источник
comment
Вы исправили проблему   -  person user725455    schedule 19.09.2019


Ответы (1)


Вам также необходимо зарегистрировать прослушиватель исключений в соединении, вызвав setExceptionListener в объекте соединения.

connection.setExceptionListener(this); // class implementing the ExceptionListener interface

Дополнительная литература

person Morag Hughson    schedule 08.06.2016
comment
Может кто-нибудь мне помочь? Может быть, было бы достаточно получить соединение, которое использует адаптер ресурсов, и установить прослушиватель исключений для этого объекта, но я не смог найти способ получить объект соединения. Вы знаете, как получить объект соединения? Он управляется самим адаптером ресурсов. - person KRONWALLED; 09.06.2016