Java学习笔记

HornetQ版的Hello World简单例子

2017-03-02  本文已影响45人  lynch0571

1、Maven依赖

        <dependency>
            <groupId>org.hornetq</groupId>
            <artifactId>hornetq-jms-client</artifactId>
            <version>2.4.7.Final</version>
        </dependency>

        <dependency>
            <groupId>jboss</groupId>
            <artifactId>jnp-client</artifactId>
            <version>4.2.2.GA</version>
        </dependency>

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();
        }
    }

}

上一篇下一篇

猜你喜欢

热点阅读