ActiveMQ本身是开源项目,所以采用ActiveMQ的项目往往也是以其他开源软件共同构建,目前主流开源应用服务器有Boss,geronimo,JOnAs,而其中geronimo 默认的JMS Provider就是ActiveMQ,那我们就着重介绍ActiveMQ与JBoss,JOnAs的整合方案
本文参考了 Integrating Apache ActiveMQ with JBoss与JBoss Integration,再根据笔者实际整合经验总结而成。
一.整合需要的环境.
jdk1.5
jboss-4.0.5.GA
activemq-ra-4.1.0-incubator.rar (在ActiveMQ 4.* lib\optional 目录里面有对应的ra的压缩包)
开始整合前请确保jboss能够正确的启动起来。
二.整合步骤
1. 步骤一: 解压activemq-rar-4.1.0-incubator.rar 到 jboss-4.0.5.GA\server\default\deploy\activemq-ra.rar (这个是目录名字) 下面是activemq-rar.rar目录下面的文件和子目录,请注意红色标记的地方(后面会逐一说明,整合的过程)
activeio-core-3.0.0-incubator.jar
activemq-core-4.1.0-incubator.jar
activemq-ra-4.1.0-incubator.jar
backport-util-concurrent-2.1.jar
commons-logging-1.0.3.jar
derby-10.1.1.0.jar
geronimo-j2ee-management_1.0_spec-1.0.jar
spring-2.0.jar
spring-1.2.6.jar
xbean-spring-2.7.jar
broker-config.xml
META-INF
2.步骤二. 删除多余的spring-1.2.6.jar,由于4.1.0的ra里面包含了2个不同版本的spring会触发一个exception的产生,https://issues.apache.org/activemq/browse/AMQ-1124, 而且为了以后能够使用新的spring schema配置方式,我们这里会删除spring-1.2.6.jar,保留spring-2.0.jar。(最新的snapshot version的ra已经去掉了这个多余的spring-1.2.6.jar).
3.步骤三: 修改META-INF\ra.xml,让JBoss使用broker-config.xml 作为默认的配置文件配置borker. 修改下面的地方
- <config-property-value>config-property-value>
-
改为:
-
- <config-property-value>xbean:broker-config.xmlconfig-property-value>
表示使用broker-config.xml来配置启动ActiveMQ.
4.步骤四: 修改borker-config.xml,默认的borker-config.xml会产生一个错误,无论是我使用的版本还是最后的snapshot版本,默认的borker-config.xml都会让xbean-spring 2.7(snapshot 使用的是2.8)抛出exception.解决的办法如下
将
- <beans xmlns="http://activemq.org/config/1.0">
- <broker useJmx="true" >
改为
- <beans>
- <broker useJmx="true" xmlns="http://activemq.org/config/1.0">
即可
5.步骤五: 将xbean-spring-2.7.jar (或者是2.8) 复制到jboss-4.0.5.GA\server\default\lib下面
三 使用整合完毕的ActiveMQ作为ds绑定到JBoss的JNDI服务。
编写jboss-4.0.5.GA\server\default\depoly\activemq-ds.xml
xml 代码
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE connection-factories
- PUBLIC "-//JBoss//DTD JBOSS JCA Config 1.5//EN"
- "http://www.jboss.org/j2ee/dtd/jboss-ds_1_5.dtd">
-
- <connection-factories>
- <tx-connection-factory>
- <jndi-name>activemq/QueueConnectionFactory</jndi-name>
- <xa-transaction/>
- <track-connection-by-tx/>
- <rar-name>activemq-ra.rar</rar-name>
- <connection-definition>javax.jms.QueueConnectionFactory</connection-definition>
- <ServerUrl>tcp://localhost:61616</ServerUrl>
- <min-pool-size>1</min-pool-size>
- <max-pool-size>200</max-pool-size>
- <blocking-timeout-millis>30000</blocking-timeout-millis>
- <idle-timeout-minutes>3</idle-timeout-minutes>
- </tx-connection-factory>
-
- <tx-connection-factory>
- <jndi-name>activemq/TopicConnectionFactory</jndi-name>
- <xa-transaction/>
- <track-connection-by-tx/>
- <rar-name>activemq-ra.rar</rar-name>
- <connection-definition>javax.jms.TopicConnectionFactory</connection-definition>
- <ServerUrl>tcp://localhost:61616</ServerUrl>
- <min-pool-size>1</min-pool-size>
- <max-pool-size>200</max-pool-size>
- <blocking-timeout-millis>30000</blocking-timeout-millis>
- <idle-timeout-minutes>3</idle-timeout-minutes>
- </tx-connection-factory>
-
- <mbean code="org.jboss.resource.deployment.AdminObject" name="activemq.queue:name=outboundQueue">
- <attribute name="JNDIName">activemq/queue/outbound</attribute>
- <depends optional-attribute-name="RARName">jboss.jca:service=RARDeployment,name='activemq-ra.rar'</depends>
- <attribute name="Type">javax.jms.Queue</attribute>
- <attribute name="Properties">PhysicalName=queue.outbound</attribute>
- </mbean>
-
- <mbean code="org.jboss.resource.deployment.AdminObject" name="activemq.topic:name=inboundTopic">
- <attribute name="JNDIName">activemq/topic/inbound</attribute>
- <depends optional-attribute-name="RARName">jboss.jca:service=RARDeployment,name='activemq-ra.rar'</depends>
- <attribute name="Type">javax.jms.Topic</attribute>
- <attribute name="Properties">PhysicalName=topic.inbound</attribute>
- </mbean>
-
- </connection-factories>
启动JBoss.如果看见以下信息就表示ActiveMQ已经成功启动,并且使用上面的ds配置文件成功地将topic/queue绑定到了JNDI服务上。
......
[TransportConnector] Connector tcp://localhost:61616 Started
[NetworkConnector] Network Connector bridge Started
[BrokerService] ActiveMQ JMS Message Broker (localhost, ID:MyNoteBook-2165-1173250880171-1:0) started
......
[ConnectionFactoryBindingService] Bound ConnectionManager 'jboss.jca:service=ConnectionFactoryBinding,name=activemq/QueueConnectionFactory' to JNDI name 'java:activemq/QueueConnectionFactory'
[ConnectionFactoryBindingService] Bound ConnectionManager 'jboss.jca:service=ConnectionFactoryBinding,name=activemq/TopicConnectionFactory' to JNDI name 'java:activemq/TopicConnectionFactory'
[AdminObject] Bound admin object 'org.apache.activemq.command.ActiveMQQueue' at 'activemq/queue/outbound'
[AdminObject] Bound admin object 'org.apache.activemq.command.ActiveMQTopic' at 'activemq/topic/inbound
......
四.验证ActiveMQ+JBoss
这里你可以使用简单的jms client连接到broker-config.xml里面的协议连接器上面,默认的是tcp://localhost:61616
在后面我们会在此整合基础上开发Message Driver Bean和使用spring MDP 2种构架 来验证本次ActiveMQ+JBoss的整合。
分享到:
- 2007-03-07 20:04
- 浏览 7884
- 评论(0)
- 论坛回复 / 浏览 (0 / 9966)
- 查看更多
相关推荐
ActiveMQ in Action pdf英文原版加源代码压缩包。... You'll integrate ActiveMQ with containers like Geronimo and JBoss and learn to tie into popular Java-based technologies like Spring Framework.
NULL 博文链接:https://seanwon.iteye.com/blog/721230
⒋ 通过了常见J2EE服务器(如 Geronimo,JBoss 4,GlassFish,WebLogic)的测试,其中通过JCA 1.5 resource adaptors的配置,可以让ActiveMQ可以自动的部署到任何兼容J2EE 1.4 商业服务器上 ⒌ 支持多种传送协议:in-VM,...
一个jms activemq Topic 消息实例 关于jms JMS 是接口,相当于jdbc ,要真正使用它需要某些厂商进行实现 ,即jms provider 常见的jms provider 有 ActiveMQ JBoss 社区所研发的 HornetQ (在jboss6 中默认即可以...
HIGHLIGHT ActiveMQ in Action is an example-rich tutorial that shows Java developers how to implement distributed messaging using ActiveMQ, and how to integrate ActiveMQ with Java and non-Java ...
1、httpd在linux下部署配置文件 2、ActiveMQ在linux下部署配置文件 3、Tomcat在Linux下部署配置文件 4、Jboss在Linux下部署配置文件
activemq-all-5.5.1.jar,aopalliance-1.0.jar,aspectj-1.8.6.jar,aspectjweaver.jar,bson-3.0.2.jar,c3p0-0.9.1.jar,commons-beanutils-1.8.3.jar,commons-collections-3.2.1.jar,commons-dbcp-1.4.jar,commons-io-...
4、通过了常见J2EE服务器(如 Geronimo,JBoss 4,GlassFish,WebLogic)的测试,其中通过JCA 1.5 resource adaptors的配置,可以让ActiveMQ可以自动的部署到任何兼容J2EE 1.4 商业服务器上 5、支持多种传送协议:in-...
提供者,即面向消息的中间件或充当代理的应用程序,示例之一是Apache ActiveMQ,RabitMQ,Hive MQTT,IBM MQ,JBoss Messaging等。 客户端,它是充当消息的发送者或接收者的应用程序。 生产者/发布者,它是充当...
ActiveMQ 入门该项目包括许多示例配置,显示了各种 ActiveMQ 高可用性场景。 其中包括:主从、经纪人网络和主从经纪人网络。 该项目还包括一个简单的 JMS 队列(点对点)消息生产者和消息消费者。 笔记: 所有说明都...
有关如何从ActiveMQ安装中启动(命令行)代理的说明不适用于JBoss A-MQ(例如bin/amq ),因为JBoss A-MQ已在Apache Karaf容器内部署了ActiveMQ以允许对配置进行运行时更新信息(在Apache ActiveMQ上则需要重新启动...
保险丝 JBoss Fuse是一个开源ESB,在单个集成发行版中具有基于Apache Camel,Apache CXF,Apache ActiveMQ,Apache Karaf和Fabric8的功能。
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...
布局 标题 ...Apache ActiveMQ-提供与ESB的核心消息传递以及与外部应用程序的集成 Apache Karaf-提供基于的轻量级容器 Fabric8-从中央位置简化分布式JBoss Fuse部署的管理 入门 我们将使用[JBoss Deve
(4)、消息队列:ActiveMQ; (5)、接口:Axis2(1.7.9); (6)、接口部署:≥Tomcat8、Jboss等; ###系统特色: (1)、前端界面经典Ribbon样式自适应,外观显示、字体等用户可自定义,win7\win10系统下完美运行; (2)、...
由jboss捐献的HornetQ的衍生版本,可能作为下一代ActiveMQ的存在。 Artemis 服务器 选择Artemis的原因开源、高可用性、Java编写、高性能的日志保证持久化消息像非持久化消息一样拥有出色的表现、功能齐全、简洁的...
#ActiveMQ研讨会##任务1)准备环境下载 (需要注册) 如果您下载了JBoss Fuse,则可以跳过此步骤提取下载的文件通过注释掉$ {INSTALLATION-FOLDER} /etc/users.properties中的最后一行来添加默认用户通过执行以下...
#ActiveMQ研讨会 ##任务1)准备环境 下载 (需要注册) 如果您下载了JBoss Fuse,则可以跳过此步骤 提取下载的文件 通过注释掉$ {INSTALLATION-FOLDER} /etc/users.properties中的最后一行来添加默认用户 通过执行...