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

标签: corba 项目 中使 | 发表时间:2012-09-17 22:39 | 作者:zz198808
出处:http://blog.csdn.net

下载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();   
     }   
 }    


 

 

作者:zz198808 发表于2012-9-17 22:39:56 原文链接
阅读:0 评论:0 查看评论

相关 [corba 项目 中使] 推荐:

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

- - CSDN博客推荐文章
下载ActiveMQ http://activemq.apache.org/download.html. 启动mq:/bin/activemq.bat. 管理界面: http://localhost:8161/admin,默认不用验证. // 延时500毫秒之后发送消息. // 延时500毫秒之后停止接受消息.

JAVA的Corba客户端 - 服务端 通信实现

- - 博客园_首页
先在Eclipse建立两个Java Project. **这里注意, } 后面的 ";"一定要写上,不然会编译错误. 右键这个HelloApp.idl 文件. 点击,Change to parent folder in Shell. 点击OK , Eclipse会打开Shell视图,是命令行视图,其实和CMD是一个作用..

[原]如何在Eclipse中使用依赖项目(Required projects)代替jar?

- - bob007abc的专栏
   在Eclipse中使用依赖项目(Required projects)替换jar的好处就是可以随时更改依赖项目中的代码,而在主项目中引用到最新的编译类. 这种方式在Debug时用处非常大,避免了每次修改依赖包源代码后,又打包成jar,并不断更新主项目jar包的麻烦. 在开源项目中,这样的项目引用方式非常常见.

reCAPTCHA项目

- - 四火的唠叨
文章系本人原创,转载请保持完整性并注明出自 《四火的唠叨》. 要说reCAPTCHA,就要先说一说CAPTCHA,全称是Completely Automated Public Turing test to tell Computers and Humans Apart,即全自动区分计算机和人类的图灵测试,也就是通常说的“验证码”,目的就是要把计算机和人区分开来.

项目集成项目管理之项目范围管理

- - CSDN博客系统运维推荐文章
7.1项目范围和项目范围管理.    项目范围:为完成具有规定特征和功能的产品、服务或结果,而必须完成的项目工作. 7.1.2项目范围管理的作用.    确定在项目内包括什么工作和不包括什么工作;由此界定的项目范围在项目的全生命周期内可能因某种原因而变化,项目范围管理也对这种变化进行管理. 7.1.3项目范围管理的主要过程.

项目的秘密——Programmers(29)

- allentranks - 西乔的九卦
载于《程序员》杂志2011年第9期. 从这一期起,开始在杂志上登出整P的大幅漫画,需要看大图的同学们,讯猛点击下图. 这个系列的漫画讲述程序员——这种神秘人类的囧事,故事多来源于我身边的程序员朋友,且以互联网开发背景为主. 如果你有什么可乐的关于程序员的故事、对话、代码,愿意通过漫画的形式分享,请给我发邮件.

绝望的项目——Programmers(21)

- leo - 西乔的九卦
载于《程序员》杂志2011年第1期. 这个系列的漫画讲述程序员——这种神秘人类的囧事,故事多来源于我身边的程序员朋友,且以互联网开发背景为主. 如果你有什么可乐的关于程序员的故事、对话、代码,愿意通过漫画的形式分享,请给我发邮件.

5种项目破坏者

- - InfoQ cn
Anders Abel是生活在瑞典斯德哥尔摩的一位软件开发者,他在自己的网站上撰写了一系列文章,箭头直指“项目破坏者”. 该系列的第二篇是《 项目破坏者分类》. Anders观察到的项目破坏者分五种:. 这种悲剧性的人物太没有安全感,一切都对他们充满了威胁. 为了克服他们的不安全感,这种破坏者会做出任何事,使出吃奶的力气,去强调一种特别难得的边界情况,因为他们正好就知道这种情况.

项目经理和Scrum Master

- - InfoQ cn
在博客上,大家对于Scrum Master和项目经理这两个角色依旧争论不休,许多评论员清晰地指出两者的不同,并表示两者不可并存,更不适合合二为一. Steve Hunton在Scrumalliance站点上发布了名为《 Scrum Master并不是项目经理的别名》的博文,他提到:. 与大众的认识相反,Scrum Master和项目经理这两个角色是完全不同的,也不应该混为一谈.

Android优秀开源项目

- - CSDN博客移动开发推荐文章
Android经典的开源项目其实非常多,但是国内的博客总是拿着N年前的一篇复制来复制去,实在是不利于新手学习. 今天爬爬把自己熟悉的一些开源项目整理起来,希望能对 Android开发同学们有所帮助. 另外,如果你有比较好的项目推荐,也烦请在评论里分享出来,我会定期更新博客内容. Apollo音乐播放器:就一个播放器,但是实现的很好.