ActiveMQ 使用消息监听器消费消息

public class MessageListenerImpl implements MessageListener {
    @SneakyThrows
    @Override
    public void onMessage(Message message) {
        if (message instanceof TextMessage) {
            TextMessage textMessage = (TextMessage) message;
            System.out.println(textMessage.getText());
        }
        if (message instanceof MapMessage) {
            MapMessage mapMessage = (MapMessage) message;
            Enumeration mapNames = mapMessage.getMapNames();
            while (mapNames.hasMoreElements()) {
                String s = mapNames.nextElement().toString();
                System.out.println(s + " --- " + mapMessage.getString(s));
            }
        }
        if (message instanceof ObjectMessage) {
            Object object = (Object) ((ObjectMessage) message).getObject();
            if (object instanceof List) {
                List list = (List) object;
                System.out.println(list);
            }
            if (object instanceof MyUser) {
                MyUser myUser = (MyUser) object;
                System.out.println(myUser);
            }
        }
        if (message instanceof BytesMessage) {
            BytesMessage bytesMessage = (BytesMessage) message;
            StringBuilder stringBuilder = new StringBuilder();
            byte[] b = new byte[1024];
            int len = -1;
            while ((len = bytesMessage.readBytes(b)) != -1) {
                stringBuilder.append(new String(b, 0, len));
            }
            System.out.println(stringBuilder.toString());
        }
    }
}
public class ActivemqConsumerService {

    public void receiveMessage() throws Exception {
        ActiveMQConnectionFactory activeMQConnectionFactory = new ActiveMQConnectionFactory(
                ActiveMQConnectionFactory.DEFAULT_USER,
                ActiveMQConnectionFactory.DEFAULT_PASSWORD,
                "tcp://127.0.0.1:61616");
		activeMQConnectionFactory.setTrustAllPackages(true);
		
        Connection connection = activeMQConnectionFactory.createConnection();

        //false-- 关闭事务;Session.AUTO_ACKNOWLEDGE -- 自动确认
        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
        Queue queue = session.createQueue("user");
        MessageConsumer messageConsumer = session.createConsumer(queue);
        connection.start();
        messageConsumer.setMessageListener(new MessageListenerImpl());

    }

    public static void main(String[] args) throws Exception {
        ActivemqConsumerService activemqConsumerService = new ActivemqConsumerService();
        activemqConsumerService.receiveMessage();
    }
}

注:
具体的发送信息的代码看:https://wwp666.blog.csdn.net/article/details/119816795

posted @ 2022-03-07 18:04  叕叕666  阅读(36)  评论(0)    收藏  举报