首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 企业软件 > 行业软件 >

ActiveMQ接收讯息

2012-10-25 
ActiveMQ接收消息之前写了一个ActiveMQ发送消息的例子。现在记录一下java接收ActiveMQ消息的代码。都是本人

ActiveMQ接收消息
之前写了一个ActiveMQ发送消息的例子。现在记录一下java接收ActiveMQ消息的代码。都是本人工作中写过的。希望给大家一点帮助。代码如下:

package com.syxp.dns.receive;import javax.jms.Connection;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.log4j.Logger;public class ReceiveMessageFromMQ {private static String url = "tcp://localhost:61616";private static String user = "";private static String password = "";private static Logger logger = Logger.getLogger(ReceiveMessageFromMQ.class);public void receiveMessage(){// 创建连接工厂ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(user, password, url);        // 创建连接        Connection connection;try {connection = connectionFactory.createConnection();connection.start();        // 创建Session        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);        // 创建目标,就创建主题也可以创建队列        Destination destination = session.createQueue("integratedalarm.subject");        // 创建消息消费者        MessageConsumer consumer = session.createConsumer(destination);        // 接收消息,参数:接收消息的超时时间,为0的话则不超时,receive返回下一个消息,但是超时了或者消费者被关闭,返回null        Message message = consumer.receive(1000);        if (message instanceof TextMessage) {            TextMessage textMessage = (TextMessage) message;            String text = textMessage.getText();            logger.info("接收的消息:"+"\n"+text);        } else {        logger.info("接收的消息:"+"\n"+message);        }        consumer.close();        session.close();        connection.close();} catch (JMSException e) {// TODO Auto-generated catch blocke.printStackTrace();}}public static void main(String[] args) {ReceiveMessageFromMQ receiveMessageFromMQ = new ReceiveMessageFromMQ();receiveMessageFromMQ.receiveMessage();}}

?

上面有详细的注释,运行了上面的接收的方法之后,会打印出一条相应队列的未接收消息。在ActiveMQ的监视控制页面中,可以看到有一条消息已经被消费。

热点排行