`
zhaohaolin
  • 浏览: 1011350 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Hello ActiveMQ

    博客分类:
  • JMS
阅读更多
Hello ActiveMQ!
 
 
下面是ActiveMQ5.2的一个最简单例子!
环境还是apache-activemq-5.2.0-bin.zip,需要注意的是,开发时候,要将apache-activemq- 5.2.0-bin.zip解压缩后里面的activemq-all-5.2.0.jar包加入到classpath下面,这个包包含了所有jms接口 api的实现。
 
 
import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;

import javax.jms.*;

/**
* 消息的生产者(发送者)
*
* @author leizhimin 2009-8-12 11:41:20
*/

public class JmsSender {
        public static void main(String[] args) throws JMSException {
                // ConnectionFactory :连接工厂,JMS 用它创建连接
                ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(
                                ActiveMQConnection.DEFAULT_USER,
                                ActiveMQConnection.DEFAULT_PASSWORD,
                                "tcp://192.168.14.117:61616");
                //JMS 客户端到JMS Provider 的连接
                Connection connection = connectionFactory.createConnection();
                connection.start();
                // Session: 一个发送或接收消息的线程
                Session session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);
                // Destination :消息的目的地;消息发送给谁.
                // 获取session注意参数值my-queue是Query的名字
                Destination destination = session.createQueue("my-queue" );
                // MessageProducer:消息生产者
                MessageProducer producer = session.createProducer(destination);
                //设置不持久化
                producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
                //发送一条消息
                sendMsg(session, producer);
                session.commit();
                connection.close();
        }

        /**
         * 在指定的会话上,通过指定的消息生产者发出一条消息
         *
         * @param session    消息会话
         * @param producer 消息生产者
         */

        public static void sendMsg(Session session, MessageProducer producer) throws JMSException {
                //创建一条文本消息
                TextMessage message = session.createTextMessage("Hello ActiveMQ!" );
                //通过消息生产者发出消息
                producer.send(message);
                System.out.println("");
        }
}
 
import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;

import javax.jms.*;

/**
* 消息的消费者(接受者)
*
* @author leizhimin 2009-8-12 11:41:33
*/

public class JmsReceiver {
        public static void main(String[] args) throws JMSException {
                // ConnectionFactory :连接工厂,JMS 用它创建连接
                ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(
                                ActiveMQConnection.DEFAULT_USER,
                                ActiveMQConnection.DEFAULT_PASSWORD,
                                "tcp://192.168.14.117:61616");
                //JMS 客户端到JMS Provider 的连接
                Connection connection = connectionFactory.createConnection();
                connection.start();
                // Session: 一个发送或接收消息的线程
                Session session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);
                // Destination :消息的目的地;消息发送给谁.
                // 获取session注意参数值xingbo.xu-queue是一个服务器的queue,须在在ActiveMq的console配置
                Destination destination = session.createQueue("my-queue" );
                // 消费者,消息接收者
                MessageConsumer consumer = session.createConsumer(destination);
                while (true ) {
                        TextMessage message = (TextMessage) consumer.receive(1000);
                        if (null != message)
                                System.out.println("收到消息:" + message.getText());
                        else
                                break ;
                }
                session.close();
                connection.close();
        }
}
 
 
启动ActiveMQ,然后开始执行:
先运行发送者,连续运行了三次,最后一次控制台输出:


Process finished with exit code 0
 
后运行接受者,输出结果:
收到消息Hello ActiveMQ!
收到消息Hello ActiveMQ!
收到消息Hello ActiveMQ!

Process finished with exit code 0
 
注意:
其中的端口61616是ActiveMQ默认的配置,在activemq.xml中,
                <!-- The transport connectors ActiveMQ will listen to -->
                < transportConnectors >
                        < transportConnector name ="openwire" uri ="tcp://localhost:61616" discoveryUri ="multicast://default" />
                        < transportConnector name ="ssl" uri ="ssl://localhost:61617" />
                        < transportConnector name ="stomp" uri ="stomp://localhost:61613" />
                        < transportConnector name ="xmpp" uri ="xmpp://localhost:61222" />
                </ transportConnectors >
,建议不要改动,都用这个端口多好,就像ftp都用21端口,也没错。
 
 
这是官方的HelloWorld例子,不过看着不顺眼:
 
----------------------
推荐一些文章:
分享到:
评论

相关推荐

    ActiveMQ教程

    TextMessage message = session.createTextMessage("Hello ActiveMQ"); producer.send(message); session.close(); connection.close(); } } ``` 这个示例演示了如何使用ActiveMQ连接到服务器,创建一个消息...

    apache activeMQ之初体验(helloworld)

    在这个"apache activeMQ之初体验(helloworld)"中,我们将探索如何使用ActiveMQ进行基本的消息发布与订阅。 在消息中间件中,"Hello World"程序通常用于演示最基本的消息传递概念。ActiveMQ的"Hello World"程序主要...

    ActiveMQ简单的HelloWorld实例

    在本文中,我们将深入探讨如何使用ActiveMQ创建一个基本的"HelloWorld"实例,以便于初学者理解消息队列的工作原理。ActiveMQ是Apache软件基金会开发的一个开源消息代理,它实现了多种消息协议,如OpenWire、AMQP、...

    activemqactivemq

    TextMessage message = session.createTextMessage("Hello, ActiveMQ!"); producer.send(message); ``` 在“MQClient”文件中,我们可以期待看到具体的客户端代码示例,这些示例可能包括连接到ActiveMQ服务器、创建...

    Spring集成ActiveMQ配置

    jmsTemplate.convertAndSend(destination, "Hello, ActiveMQ!"); ``` 接收消息: ```java @JmsListener(destination = "MyQueue") public void receiveMessage(String message) { System.out.println(...

    mqttjs(activemq测试工具)

    client.publish('test/topic', 'Hello, MQTT World!'); }); // 接收消息事件 client.on('message', function (topic, message) { console.log(`Received message from topic ${topic}: ${message.toString()}`); ...

    ActiveMQ 安装 手册 说明

    【ActiveMQ 安装手册说明】ActiveMQ 是一个开源的消息代理服务器,它是Apache软件基金会的顶级项目,基于Java消息服务(JMS)标准,用于在分布式系统中传递消息。本手册将详细介绍在Linux环境下如何安装和运行...

    activeMQ简单入门案例

    TextMessage message = session.createTextMessage("Hello, ActiveMQ!"); producer.send(message); // 关闭资源 producer.close(); session.close(); connection.close(); ``` 3. **创建消费者** - 在...

    C#客户端开发ActiveMq请下载Apache.NMS和Apache.NMS.ActiveMQ两个bin包

    var message = session.CreateTextMessage("Hello, ActiveMQ!"); ``` 8. 发送消息:使用生产者将消息发送到目的地。 ```csharp producer.Send(destination, message); ``` 9. 创建消费者:创建一个消息消费者,...

    activemq-cpp-library-3.9.5-src.zip

    std::auto_ptr&lt;cms::TextMessage&gt; message(session-&gt;createTextMessage("Hello, World!")); producer-&gt;send(message.release()); std::auto_ptr&lt;cms::Message&gt; received = consumer-&gt;receive(); ``` 5. **构建...

    activeMQ Demo

    IMessage message = session.CreateTextMessage("Hello, ActiveMQ!"); producer.Send(message); ``` 4. **消息订阅(Subscribe)** 创建消费者订阅主题,当有新消息到达时,会触发消息处理回调。 ```csharp ...

    activeMQ JMS WEB 例子

    Message message = session.createTextMessage("Hello, ActiveMQ!"); producer.send(message); ``` 对于消费者,注册一个消息监听器来接收消息: ```java consumer.setMessageListener(new MessageListener() { ...

    ActiveMQ简单Demo案例

    TextMessage message = session.createTextMessage("Hello, ActiveMQ!"); // 发送消息 producer.send(message); ``` 对于消费者端,同样需要创建连接工厂、连接、session,但这次我们会创建一个MessageConsumer...

    go语言实现使用activemq 收发消息

    body := []byte("Hello, ActiveMQ!") conn.Send("/queue/test", stomp.Headers{}, body) ``` 6. **处理错误** 在上述示例中,我们对可能出现的错误进行了处理,如使用`panic(err)`展示错误信息。在实际应用中,...

    ActiveMQ基于Java和JavaScript的应用实例

    TextMessage message = session.createTextMessage("Hello, ActiveMQ!"); // 发送消息 producer.send(message); ``` 对于JavaScript,ActiveMQ提供了StompWebsocket库,使得我们可以通过WebSocket协议与ActiveMQ...

    activemq 入门示例代码

    TextMessage message = session.createTextMessage("Hello, ActiveMQ!"); // 发送消息 producer.send(message); System.out.println("消息已发送"); // 关闭资源 producer.close(); session.close(); ...

    activemq C#客户端使用demo

    ITextMessage message = session.CreateTextMessage("Hello, ActiveMQ!"); // 发送消息到队列 producer.Send(message); // 关闭资源 producer.Close(); session.Close(); connection.Stop(); connection....

    qt5.8 msvc2015 +activemq

    qt5.8 msvc2015 加载activemq 成功自发自首,编写了模块,可以自行下载,activemq里面的dll,也都存在, 调用方法 CSpiderPluginAMq::GetInstance()-&gt;InitNetwork(); CSpiderPluginAMq::GetInstance()-&gt;...

    activeMQ-cpp 测试文件

    cms::TextMessage* message = session-&gt;createTextMessage("Hello, ActiveMQ!"); // 发送消息 producer-&gt;send(message); // 创建消费者 cms::MessageConsumer* consumer = session-&gt;createConsumer...

    activeMQ 服务端客户端 java代码

    TextMessage message = session.createTextMessage("Hello, ActiveMQ!"); producer.send(message); session.close(); connection.close(); } } ``` ### 4. Java 客户端实现 客户端则用于订阅主题或队列,并...

Global site tag (gtag.js) - Google Analytics