gpt4 book ai didi

java - ActiveMQ 5.x 和 DurableConsumer

转载 作者:行者123 更新时间:2023-11-30 01:50:35 25 4
gpt4 key购买 nike

我正在尝试使用 ActiveMQ 5.x 创建持久消费者,因此我有以下内容:

private static void consumeFromTopic() throws JMSException, NamingException {
javax.naming.Context ctx = new InitialContext();

ConnectionFactory factory = (ConnectionFactory) ctx.lookup("ConnectionFactory");
Connection connection = factory.createConnection();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Topic topic = session.createTopic("topic-queue");
MessageConsumer consumer = session.createDurableConsumer(topic, "lanhellas-durable-consumer");
consumer.setMessageListener(new MyListener());

connection.start();
}

当我尝试启动我的消费者时,我得到以下信息:

Exception in thread "main" java.lang.AbstractMethodError: org.apache.activemq.ActiveMQSession.createDurableConsumer(Ljavax/jms/Topic;Ljava/lang/String;)Ljavax/jms/MessageConsumer;

这是我的pom.xml:

<dependency>
<groupId>javax.jms</groupId>
<artifactId>javax.jms-api</artifactId>
<version>2.0.1</version>
</dependency>

<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-core</artifactId>
<version>5.7.0</version>
</dependency>

因此,阅读有关 ActiveMQ 5.x 的更多信息,我发现仅支持 JMS 1.x,并且此版本不支持此方法,因此我需要更改为支持 JMS 2.0 的 Apache Artemis,但我有一些疑问它:

  1. 与 ACtiveMQ 5.x 库配合使用的正确 javax.jms-api 版本是什么?
  2. 如果 JMS 1.x 不支持持久消费者,为什么 ActiveMQ 5.x 代理(控制台管理)支持持久消费者?
  3. 与 Apache Artemis 配合使用的正确版本和依赖项是什么?

最佳答案

JMS 1.1 确实支持持久订阅,您只需查看 API docs要了解如何操作,这里有一个 method这将创建一个持久的主题订阅者。

我之前已经回答过什么是正确的 JMS 依赖关系,请参阅 here .

关于java - ActiveMQ 5.x 和 DurableConsumer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56209982/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com