跳到主要内容

编写代码实现Java实现创建ActiveMQ监听方式消费?

参考答案:

在Java中,你可以使用ActiveMQ的JMS API来创建一个监听器(Listener)以消费消息。以下是一个简单的示例,展示了如何创建一个ActiveMQ消费者(Consumer)来监听并消费队列中的消息。

首先,确保你已经添加了ActiveMQ的JMS客户端库到你的项目中。如果你使用的是Maven,你可以添加以下依赖:

<dependency>
    <groupId>org.apache.activemq</groupId>
    <artifactId>activemq-all</artifactId>
    <version>5.16.3</version> <!-- 请检查并使用最新版本 -->
</dependency>

然后,你可以使用以下代码来创建一个ActiveMQ消费者:

import javax.jms.*;
import org.apache.activemq.ActiveMQConnectionFactory;

public class ActiveMQConsumer {
    public static void main(String[] args) throws JMSException {
        // 创建连接工厂
        ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
        
        // 创建连接
        Connection connection = connectionFactory.createConnection();
        connection.start();
        
        // 创建会话
        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
        
        // 创建目标(队列或主题)
        Destination destination = session.createQueue("MY_QUEUE"); // 替换为你的队列名
        
        // 创建消费者
        MessageConsumer consumer = session.createConsumer(destination);
        
        // 创建消息监听器
        consumer.setMessageListener(new MessageListener() {
            public void onMessage(Message message) {
                if (message instanceof TextMessage) {
                    TextMessage textMessage = (TextMessage) message;
                    try {
                        System.out.println("Received: " + textMessage.getText());
                    } catch (JMSException e) {
                        e.printStackTrace();
                    }
                } else {
                    throw new IllegalArgumentException("Message must be instance of TextMessage");
                }
            }
        });
        
        System.out.println("Consumer is ready to receive messages.");
    }
}

这个示例代码创建了一个ActiveMQ消费者,它连接到本地的ActiveMQ代理(假设它正在运行并监听61616端口),并监听名为"MY_QUEUE"的队列。当队列中有新消息时,onMessage方法会被调用,并打印出消息的内容。

请注意,你需要将"MY_QUEUE"替换为你实际要监听的队列名。此外,如果ActiveMQ代理运行在其他主机或端口上,你还需要修改连接工厂的URL。

在实际的生产环境中,你可能还需要考虑更多的异常处理、连接管理和资源释放等问题。这个示例仅用于演示基本的ActiveMQ消费者创建和消息监听过程。