首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Corba项目中应用的ActiveMQ消息组件介绍

2012-09-21 
Corba项目中使用的ActiveMQ消息组件介绍下载ActiveMQ http://activemq.apache.org/download.html解压缩到

Corba项目中使用的ActiveMQ消息组件介绍

下载ActiveMQ http://activemq.apache.org/download.html

解压缩到本地

 

启动mq:/bin/activemq.bat

 

管理界面: http://localhost:8161/admin,默认不用验证。

发送消息测试:

package com.google.homework; import javax.jms.Connection;    import javax.jms.DeliveryMode;    import javax.jms.Destination;    import javax.jms.JMSException;    import javax.jms.MessageProducer;    import javax.jms.Session;    import javax.jms.TextMessage;       import org.apache.activemq.ActiveMQConnection;    import org.apache.activemq.ActiveMQConnectionFactory;       public class ProducerTool {           private String user = ActiveMQConnection.DEFAULT_USER;           private String password = ActiveMQConnection.DEFAULT_PASSWORD;           private String url = ActiveMQConnection.DEFAULT_BROKER_URL;           private String subject = "TOOL.DEFAULT";           private Destination destination = null;           private Connection connection = null;           private Session session = null;           private MessageProducer producer = null;           // 初始化        private void initialize() throws JMSException, Exception {            ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(                    user, password, "tcp://localhost:61616");            connection = connectionFactory.createConnection();            session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);            destination = session.createQueue(subject);            producer = session.createProducer(destination);            producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);        }           // 发送消息        public void produceMessage(String message) throws JMSException, Exception {            initialize();            TextMessage msg = session.createTextMessage(message);            connection.start();            System.out.println("Producer:->Sending message: " + message);            producer.send(msg);            System.out.println("Producer:->Message sent complete!");        }           // 关闭连接        public void close() throws JMSException {            System.out.println("Producer:->Closing connection");            if (producer != null)                producer.close();            if (session != null)                session.close();            if (connection != null)                connection.close();        }    }    



接受代码:

package com.google.homework; import javax.jms.Connection;    import javax.jms.Destination;    import javax.jms.JMSException;    import javax.jms.MessageConsumer;    import javax.jms.Session;    import javax.jms.MessageListener;    import javax.jms.Message;    import javax.jms.TextMessage;       import org.apache.activemq.ActiveMQConnection;    import org.apache.activemq.ActiveMQConnectionFactory;       public class ConsumerTool implements MessageListener {           private String user = ActiveMQConnection.DEFAULT_USER;           private String password = ActiveMQConnection.DEFAULT_PASSWORD;           private String url = ActiveMQConnection.DEFAULT_BROKER_URL;           private String subject = "TOOL.DEFAULT";           private Destination destination = null;           private Connection connection = null;           private Session session = null;           private MessageConsumer consumer = null;           // 初始化        private void initialize() throws JMSException, Exception {            ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(                    user, password, url);            connection = connectionFactory.createConnection();            session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);            destination = session.createQueue(subject);            consumer = session.createConsumer(destination);                    }           // 消费消息        public void consumeMessage() throws JMSException, Exception {            initialize();            connection.start();                        System.out.println("Consumer:->Begin listening...");            // 开始监听            consumer.setMessageListener(this);            // Message message = consumer.receive();        }           // 关闭连接        public void close() throws JMSException {            System.out.println("Consumer:->Closing connection");            if (consumer != null)                consumer.close();            if (session != null)                session.close();            if (connection != null)                connection.close();        }           // 消息处理函数        public void onMessage(Message message) {            try {                if (message instanceof TextMessage) {                    TextMessage txtMsg = (TextMessage) message;                    String msg = txtMsg.getText();                    System.out.println("Consumer:->Received: " + msg);                } else {                    System.out.println("Consumer:->Received: " + message);                }            } catch (JMSException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }        }    }    


测试:

package com.google.homework; import javax.jms.JMSException;       public class Test {           /**        * @param args        */       public static void main(String[] args) throws JMSException, Exception {            // TODO Auto-generated method stub            ConsumerTool consumer = new ConsumerTool();            ProducerTool producer = new ProducerTool();            // 开始监听            consumer.consumeMessage();                        // 延时500毫秒之后发送消息            Thread.sleep(500);            producer.produceMessage("Hello, world!");            producer.close();                        // 延时500毫秒之后停止接受消息            Thread.sleep(500);            consumer.close();        }    }    


 

 

热点排行