在tomEE mdb中使用ActiveMQ顾问消息

时间:2013-04-18 13:38:19

标签: activemq message-driven-bean apache-tomee

我有一个MDB,当部署在glassfish上时,它会设法使用ActiveMQ建议消息。

但是当我在tomEE上部署时,这个MDB不会消耗任何咨询消息。我需要打开一些东西吗?

@MessageDriven(mappedName = "ActiveMQ.Advisory.Consumer.Queue", activationConfig = {
        @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Topic"),
        @ActivationConfigProperty(propertyName = "destination", propertyValue = "ActiveMQ.Advisory.Consumer.Queue.User.*") })
public class AdvisoryMdb implements MessageListener {
    private final Logger logger = LoggerFactory.getLogger(getClass().getName());

    @Override
    public void onMessage(Message message) {
        logger.info("onMessage() {}", message);
    }
}

(在TomEE中,我设法成功生成和使用这些队列上的消息,我想建议)

编辑:我测试了使用独立客户端使用其中一个顾问主题,并按预期获得了消息。所以咨询消息已经成功发送,只是我的mdb没有正确地发送它们。

2 个答案:

答案 0 :(得分:1)

您尝试使用哪些建议消息?

查看文档here ...我看到ActiveMQ.Advisory.Consumer.Queue列为 Consumer start&停止队列上的消息。您的目标是ActiveMQ.Advisory.Consumer.Queue.User.*,那么您是否有一个名为User的队列?这是一个队列还是User下面有多个队列?

同样阅读文档,多年来咨询队列名称似乎发生了一些变化。您可以检查平台上的ActiveMQ版本,并确保您将苹果与苹果进行比较吗?此外,在我列出的文档页面上,我有点想知道是否有一些建议被禁用。它没有将该特定队列列为可以被禁用的队列,但您可以尝试明确启用所有建议,看看是否有帮助。

答案 1 :(得分:0)

我偶然试图删除

mappedName = "ActiveMQ.Advisory.Consumer.Queue"
来自@MessageDriven注释的

突然它可以在TomEE和glassfish上运行。不知道我为什么首先添加它,猜测它也不需要玻璃鱼。