当前位置: 首页 > 知识库问答 >
问题:

在tomEE mdb中使用ActiveMQ咨询消息

梁德馨
2023-03-14

我有一个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个答案

荀金鹏
2023-03-14

碰巧我试图移除

mappedName = "ActiveMQ.Advisory.Consumer.Queue"

从@MessageDriven注释开始,突然它适用于TomEE和glassfish。不知道为什么我首先添加了这个,我想玻璃鱼也不需要它。

苏坚成
2023-03-14

你在尝试使用什么建议信息?

看看这里的文档。。。我看到了ActiveMQ。顾问的消费者列出的队列表示消费者开始

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

 类似资料:
  • 我是ActiveMQ新手。我曾尝试在activemq中实现生产者-消费者(发送者-接收器)。在我的代码中,我很容易发送 这是我的制片人 MsgProducer。Java语言 MsgConsumer.java 有谁能帮我找出向多个消费者发送信息的方法吗。提前谢谢。

  • 商品咨询: 一、买家购买商品时对商品的咨询。 商品咨询的具体操作: 第一步:点开某个商品找到我要咨询点击。 第二步:选择咨询类型。 第三步:添加咨询内容。 第四步:输入验证码后点击我要咨询。 二、商品咨询在后台的具体操作: 1、未回复咨询:指卖家对咨询客户没有做出回复,不会出现回复内容。 2、已回复咨询:指卖家对咨询客户已经做出回复,会出现回复内容。 3、高级搜索:可以对咨询客户所咨询的商品名称、

  • 线程名称:线程组1-1示例开始时间:2019-09-11 18:52:42英国夏令时加载时间:0连接时间:0延迟时间:0大小以字节为单位:0发送字节:0头大小以字节为单位:0主体大小以字节为单位:0示例计数:1错误计数:1数据类型(“text”“bin”“”):文本响应代码:000响应消息:javax.naming.nameNotFoundException:DynamicQueue/MyQueu

  • 有人能指导我如何在ActiveMQ Artemis Broker上拦截MQTT消息吗?我按照手册中的建议进行了尝试,但是MQTT消息没有被拦截。然而,消息的发布和订阅工作正常。 broker类的完整代码位于https://codeshare.io/snzsb

  • 我们面临着ActiveMQ及其消费者的随机问题。我们观察到,很少有消费者不接收消息,即使他们连接到ActiveMQ队列。但在消费者重启后,它工作正常。 我们在ActiveMQ端有一个名为testQueue的队列。消费者正试图将消息从该队列中解列。为此,我们正在使用Spring的DefaultMessageListenerContainer。消息正在从ActiveMQ代理传递到使用者节点。从tcpd