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) {
        // 設(shè)置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;

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

        // 建立連接和會話,進(jìn)而發(fā)送和接收消息
        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();
        }
    }

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,694評論 19 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,285評論 6 342
  • Maven簡單介紹 Maven是一個(gè)項(xiàng)目管理工具。強(qiáng)大,但是很容易使用。 它包含了: 一個(gè)項(xiàng)目對象模型 (Proj...
    高公子Daniel閱讀 4,507評論 4 60
  • 每逢佳節(jié)被催婚 玩命搶票 搶到無座票 普列一路站著, 拖著散架的身軀爬進(jìn)家門 還沒顧上喘氣 就聽到三姑六婆八大奶奶...
    羅掌柜real閱讀 228評論 0 0
  • 膽小如鼠,畏畏縮縮,如果遇到的不是觸犯法律或者道德底線的事,還反復(fù)掂量,多方求證,結(jié)果處理事情的最佳時(shí)期反...
    花房姑娘1987閱讀 313評論 0 0

友情鏈接更多精彩內(nèi)容