ActiveMQ实战(2):测试其是否正常工作【转】

本文介绍如何使用ActiveMQ进行Java消息服务(JMS)的消息发送与接收。通过具体的Java代码示例,演示了如何配置连接工厂、创建连接及会话,以及如何发送和接收文本消息。

既然ActiveMQ安装好了并启动成功,接下来我们就编写一个测试程序,向它发送JMS消息,并从它上面接收JMS消息,看看是否能正常工作。

安装目录/usr/local/apache-activemq-5.3.0中,有一个jar包activemq-all-5.3.0.jar,记得把它下载下来,加入到测试程序的CLASSPATH中。

发送JMS消息的程序如下:

package jmstest;

import javax.jms.Connection;

import javax.jms.ConnectionFactory;

import javax.jms.Destination;

import javax.jms.JMSException;

import javax.jms.MessageProducer;

import javax.jms.Session;

import javax.jms.TextMessage;

import org.apache.activemq.ActiveMQConnectionFactory;

import org.apache.activemq.command.ActiveMQQueue;

/**

 *

 * @author Frank Wen

 */

public class Send {

    public static void main(String[] args) {

        ConnectionFactory cf = new ActiveMQConnectionFactory("tcp://192.168.1.109:61616");

        Connection conn = null;

        Session session = null;

        try {

            conn = cf.createConnection();

            session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);

            Destination destination = new ActiveMQQueue("jms_test_queue");

            MessageProducer producer = session.createProducer(destination);

            TextMessage message = session.createTextMessage();

            message.setText("Hello World!");

            producer.send(message);

            System.out.println("Send a message: Hello World!");

        } catch (JMSException ex) {

            ex.printStackTrace();

        } finally {

            try {

                if(session != null) {

                    session.close();

                }

                if(conn != null) {

                    conn.close();

                }

            } catch (JMSException ex) {

                ex.printStackTrace();

            }

        }

    }

}

接收JMS消息的程序如下:

package jmstest;

import javax.jms.Connection;

import javax.jms.ConnectionFactory;

import javax.jms.Destination;

import javax.jms.JMSException;

import javax.jms.Message;

import javax.jms.MessageConsumer;

import javax.jms.Session;

import javax.jms.TextMessage;

import org.apache.activemq.ActiveMQConnectionFactory;

import org.apache.activemq.command.ActiveMQQueue;

/**

 *

 * @author Frank Wen

 */

public class Receive {

    public static void main(String[] args) {

        ConnectionFactory cf = new ActiveMQConnectionFactory("tcp://192.168.1.109:61616");

        Connection conn = null;

        Session session = null;

        try {

            conn = cf.createConnection();

            session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);

            Destination destination = new ActiveMQQueue("jms_test_queue");

            MessageConsumer consumer = session.createConsumer(destination);

            conn.start();

            Message message = consumer.receive();

            TextMessage textMessage = (TextMessage) message;

            System.out.println("Receive a message: " + textMessage.getText());

        } catch (JMSException ex) {

            ex.printStackTrace();

        } finally {

            try {

                if(session != null) {

                    session.close();

                }

                if(conn != null) {

                    conn.close();

                }

            } catch (JMSException ex) {

                ex.printStackTrace();

            }

        }

    }

}

先后执行以上两个程序,如果能正确发送和接收JMS消息,则表明ActiveMQ正常工作。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值