activimq java集成_在Spring中集成ActiveMQ组件

1

下载ActiveMQ:

http://www.apache.org/dyn/closer.cgi?path=/activemq/apache-activemq/5.8.0/apache-activemq-5.8.0-bin.zip

2

解压apache-activemq-5.8.0.zip即可完成ActiveMQ的安装,解压后目录结构如下

简单介绍每个文件夹的含义:

+bin (windows下面的bat和unix/linux下面的sh) 启动ActiveMQ的启动服务就在这里

+conf (activeMQ配置目录,包含最基本的activeMQ配置文件)

+data (默认是空的)

+docs (index,replease版本里面没有文档)

+example (几个例子)

+lib (activeMQ使用到的lib)

+webapps (系统管理员控制台代码)

+webapps-demo(系统示例代码)

-activemq-all-5.8.0.jar (ActiveMQ的binary)

-user-guide.html (部署指引)

-LICENSE.txt

-NOTICE.txt

-README.txt

其他文件就不相信介绍了,搞Java的应该都知道干什么用的。

3

进入bin目录,使用activemq.bat双击启动(windows用户可以选择系统位数,如果你是linux的话,就用命令行的发送去启动),如果一切顺利,你就会看见类似下面的信息:

如果你看到这个,那么恭喜你成功了。如果你启动看到了异常信息:

Caused by: java.io.IOException: Failed to bind to server socket: tcp://0.0.0.0:61616?maximumConnections=1000&wireformat.maxFrameSize=104857600 due to: java.net.SocketException: Unrecognized Windows Sockets error: 0: JVM_Bind那么我告诉你,很不幸,你的端口被占用了。接下来你大概想知道是哪个程序占用了你的端口,并kill掉该进程或服务。或者你要尝试修改ActiveMQ的默认端口61616(ActiveMQ使用的默认端口是61616),在大多数情况下,占用61616端口的是Internet Connection Sharing (ICS) 这个Windows服务,你只需停止它就可以启动ActiveMQ了。

4

启动成功就可以访问管理员界面:http://localhost:8161/admin,默认用户名和密码admin/admin。如果你想修改用户名和密码的话,在conf/jetty-realm.properties中修改即可。

其中在导航菜单中,Queues是队列方式消息。Topics是主题方式消息。Subscribers消息订阅监控查询。Connections可以查看链接数,分别可以查看xmpp、ssl、stomp、openwire、ws和网络链接。Network是网络链接数监控。Send可以发送消息数据。

5

整合Spring实现消息发送和接收,在整合之前我们需要添加jar包,需要的jar包如下:

这些jar包可以在D:\apache-activemq-5.8.0\lib这个lib目录中找到,添加完jar包后就开始编码工作。

消息发送者package com.hoo.mq.spring.support; import java.util.Date;import javax.jms.JMSException;import javax.jms.MapMessage;import javax.jms.Message;import javax.jms.Session;import org.springframework.context.ApplicationContext;import org.springframework.context.support.FileSystemXmlApplicationContext;import org.springframework.jms.core.JmsTemplate;import org.springframework.jms.core.MessageCreator; /** * function: Spring JMSTemplate 消息发送者 * @author hoojo * @createDate 2013-6-24 下午02:18:48 * @file Sender.java * @package com.hoo.mq.spring.support * @project ActiveMQ-5.8 * @blog http://blog.csdn.net/IBM_hoojo * @email hoojo_@126.com * @version 1.0 */public class Sender {  public static void main(String[] args) { ApplicationContext ctx = new FileSystemXmlApplicationContext("classpath:applicationContext-*.xml"); JmsTemplate jmsTemplate = (JmsTemplate) ctx.getBean("jmsTemplate");  jmsTemplate.send(new MessageCreator() { public Message createMessage(Session session) throws JMSException { MapMessage message = session.createMapMessage(); message.setString("message", "current system time: " + new Date().getTime()); return message; } }); }

}

消息接收者

package com.hoo.mq.spring.support; import java.util.Map;import org.springframework.context.ApplicationContext;import org.springframework.context.support.FileSystemXmlApplicationContext;import org.springframework.jms.core.JmsTemplate; /** * function: Spring JMSTemplate 消息接收者 * @author hoojo * @createDate 2013-6-24 下午02:22:32 * @file Receiver.java * @package com.hoo.mq.spring.support * @project ActiveMQ-5.8 * @blog http://blog.csdn.net/IBM_hoojo * @email hoojo_@126.com * @version 1.0 */public class Receiver {  @SuppressWarnings("unchecked") public static void main(String[] args) { ApplicationContext ctx = new FileSystemXmlApplicationContext("classpath:applicationContext-*.xml"); JmsTemplate jmsTemplate = (JmsTemplate) ctx.getBean("jmsTemplate"); while(true) { Map map = (Map) jmsTemplate.receiveAndConvert(); System.out.println("收到消息:" + map.get("message")); } }}

这里主要是用到了JmsTemplate这个消息模板,这个对象在spring的IoC容器中管理,所以要从spring的容器上下文中获取。下面看看spring的配置文件applicationContext-beans.xml内容:

这里的整合就比较简单了,如果你是web工程,那你在需要用jms的时候,只需用注入jmsTemplate即可。

END

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值