HornetQ版的Hello World简单例子

1、Maven依赖

        
            org.hornetq
            hornetq-jms-client
            2.4.7.Final
        

        
            jboss
            jnp-client
            4.2.2.GA
        

2、代码

package com.lynch.hornetq.demo;

import java.util.Properties;

import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.JMSException;
import javax.jms.MessageConsumer;
import javax.jms.MessageProducer;
import javax.jms.Queue;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;

public class HornetqTextMessageDemo {

    public static void main(String[] args) {
        // 设置HornetQ连接信息
        Properties p = new Properties();
        p.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
        p.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
        p.put(Context.PROVIDER_URL, "jnp://192.168.137.239:1099");

        Context context = null;
        ConnectionFactory factory = null;
        Queue queue = null;

        // 初始化连接信息,并指定连接工厂和消息队列
        try {
            context = new InitialContext(p);
            factory = (ConnectionFactory) context.lookup("/ConnectionFactory");
            queue = (Queue) context.lookup("queue/DLQ");
        } catch (NamingException e) {
            e.printStackTrace();
        }

        // 建立连接和会话,进而发送和接收消息
        try (Connection connection = factory.createConnection(); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);) {
            connection.start();
            produceMessage(session, queue, "Hello world!");
            consumeMessage(session, queue);
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    public static void produceMessage(Session session, Queue queue, String text) {
        try (MessageProducer producer = session.createProducer(queue)) {
            TextMessage message = session.createTextMessage(text);
            producer.send(message);
            System.out.println("Send message:" + text);
        } catch (JMSException e) {
            e.printStackTrace();
        }
    }

    public static void consumeMessage(Session session, Queue queue) {
        try (MessageConsumer consumer = session.createConsumer(queue)) {
            TextMessage message = (TextMessage) consumer.receive(5000);
            System.out.println("Received message:" + message.getText());
        } catch (JMSException e) {
            e.printStackTrace();
        }
    }

}

你可能感兴趣的:(HornetQ版的Hello World简单例子)