HornetQ版的Hello World简单例子

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

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,161评论 19 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,158评论 6 342
  • Maven简单介绍 Maven是一个项目管理工具。强大,但是很容易使用。 它包含了: 一个项目对象模型 (Proj...
    高公子Daniel阅读 9,850评论 4 60
  • 每逢佳节被催婚 玩命抢票 抢到无座票 普列一路站着, 拖着散架的身躯爬进家门 还没顾上喘气 就听到三姑六婆八大奶奶...
    罗掌柜real阅读 1,490评论 0 0
  • 胆小如鼠,畏畏缩缩,如果遇到的不是触犯法律或者道德底线的事,还反复掂量,多方求证,结果处理事情的最佳时期反...
    花房姑娘1987阅读 1,891评论 0 0

友情链接更多精彩内容