在MessageListener

时间:2016-06-06 07:01:35

标签: jboss ibm-mq jboss-eap-6

我们的结构如下: 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方法永远不会从资源适配器调用。

任何人都可以帮助我吗?也许它足以获得资源适配器使用的连接并为此对象设置异常监听器,但我找不到获取连接对象的方法。

由于

1 个答案:

答案 0 :(得分:0)

您还需要通过在连接对象上调用setExceptionListener来为连接注册异常监听器。

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

补充阅读