JMS简介安装ActiveMQ

最近看公司的项目中用到JMS,曾经写代码的时候也用过JMS来发送消息,但是用的东西都是老大封装好的,不知道究竟JMS是怎么一回事,这两天有空自己找了点资料了解了一下,但是我也是自学的小菜鸟,不能确定我下边写的demo完全可靠,如果有错误请大神们多多指点。

1、JMS简介:JMS即Java Message Service,是Java 程序创建、发送、接收和读取企业消息传送系统的消息提供了一种常用的方式。个人感觉JMS类似与JDBC,Java提供一个接口让不同的厂商去实现,常见的实现有ActiveMQ、JBoss MQ、IBM Websphere MQ等,我在demo中用的是ActiveMQ。关于JMS的简介网上有许多不错的文章我也是看他们学习JMS的,当然学一个东西前我们首先大概了解他们是干嘛的,个人觉得还是有必要的。简介在此就不再赘述了,附件中的JavaEE_CN.chm文档中查看javax.JMS也会有较为详细的叙述。推荐几篇不错的文章大家可以去看看http://somebody-hjh.iteye.com/blog/726050(理论和实践相结合写的相当不错)http://www.open-open.com/doc/view/aa41a61492b445b9bc69204eccecf26d(基本上都是理论,但是对JMS的知识点写的非常详尽)。

2、准备工作:根据你的需求到apache官网下载ActiveMQ的安装包http://activemq.apache.org/download-archives.html,我下载的是apache-activemq-5.5.1版本的。

 (像是这种东东或者jar包一般到官网上去下载就可以了,方便省事,不用到网上去求。大多数下载还要积分,这种做法我觉得的很恶心,许多东西用谷歌搜出来到哪些外文网站上就可以直接下载下来。但是它也有两个缺点,一、对于我们这种英语不大好的找到下载的地方比较费劲;二、下载速度会比较慢一些)

3、解压下载的zip包,运行bin下的activemq.bat文件,启动MQ服务。



 

4、在浏览器中输入:http://localhost:8161/查看是否已成功启动MQ服务,在启动后程序有两个端口会被MQ占用:8161和61616,8161被ActiveMQ自带的web应用程序占用改应用程序可以用来管理消息,61616而用来等待JMS client的连接。

 5、完成上述工作后开始写第一个小demo发送一段字符串:

写程序之前我们首先需要引用下边两个jar包,第一个包在先前解压的文件中有可以去复制过来,第二个是日志文件的一个包,我刚开始做的时候报错下边这样的错误,在网上自己下载了个日志文件的jar包弄进去就好了,后来发现在解压文件里边中ib------》optional下有这样两个jar包log4j-1.2.14.jar、slf4j-log4j12-1.5.11.jar,引入就好使了

 



 7、发送JMS消息

Java代码   收藏代码
  1. public class QueueSend {  
  2.     public static void main(String[] args) throws JMSException {  
  3.         ConnectionFactory connectionfactory = new ActiveMQConnectionFactory("tcp://localhost:61616");  
  4.         //创建与JMS服务的连接:ConnectionFactory被管理的对象,由客户端创建,用来创建一个连接对象  
  5.         Connection connection = connectionfactory.createConnection();//获取连接,connection一个到JMS系统提供者的活动连接  
  6.         Session session =connection.createSession(false,Session.AUTO_ACKNOWLEDGE );//打开会话,一个单独的发送和接受消息的线程上下文  
  7.     Queue queue = new ActiveMQQueue("queue.msgText");  
  8.         MessageProducer msgProducer = session.createProducer(queue);  
  9.         Message msg = session.createTextMessage("使用jms发送文本消息");  
  10.         msgProducer.send(msg);  
  11.         System.out.println("文本消息已发送");  
  12.                 session.close();  
  13.         connection.close();  
  14.   
  15.     }  
  16. }  

 8、接受JMS消息

Java代码   收藏代码
  1. public class QueuesAccept {  
  2.     public static void main(String[] args) throws JMSException {  
  3.         String jmsProviderAddress = "tcp://localhost:61616";// 地址  
  4.         ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(jmsProviderAddress);  
  5.         Connection conn = connectionFactory.createConnection();  
  6.         Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);  
  7.         String destinationName = "userId";  
  8.         Destination dest = session.createQueue(destinationName);  
  9.         MessageConsumer consumer = session.createConsumer(dest);  
  10.         conn.start();  
  11.         TextMessage textMessage = (TextMessage) consumer.receive();//先手动接受JMS消息,这儿可以用监听  
  12.         String text = textMessage.getText();  
  13.         System.out.println("发送内容为:" + text);  
  14.         consumer.close();  
  15.         session.close();  
  16.         conn.close();  
  17.     }  
  18. }  

 第一个demo就搞定了,发送JMS后可以在ActiveMQ自带的web应用程序中查看到发送消息的相关信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值