`
cctvx1
  • 浏览: 79351 次
社区版块
存档分类
最新评论

ActiveMQ 实践之路(三) ActiveMQ 4.x +JBoss 4.x 整合篇

阅读更多

      ActiveMQ本身是开源项目,所以采用ActiveMQ的项目往往也是以其他开源软件共同构建,目前主流开源应用服务器有Boss,geronimo,JOnAs,而其中geronimo 默认的JMS Provider就是ActiveMQ,那我们就着重介绍ActiveMQ与JBoss,JOnAs的整合方案

本文参考了 Integrating Apache ActiveMQ with JBossJBoss 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. 修改下面的地方

  1. <config-property-value>config-property-value>              
  2. <!--  <config-property-value>xbean:broker-config.xml</config-property-value>-->  

      改为:

  1. <!-- <config-property-value></config-property-value> -->  
  2. <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.解决的办法如下
       将        
  1. <beans xmlns="http://activemq.org/config/1.0">  
  2.           <broker useJmx="true" >    
     
     改为
 
  1. <beans>  
  2. <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 代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE connection-factories   
  3.     PUBLIC "-//JBoss//DTD JBOSS JCA Config 1.5//EN"   
  4.     "http://www.jboss.org/j2ee/dtd/jboss-ds_1_5.dtd">  
  5.   
  6. <connection-factories>  
  7.    <tx-connection-factory>  
  8.       <jndi-name>activemq/QueueConnectionFactory</jndi-name>  
  9.       <xa-transaction/>  
  10.       <track-connection-by-tx/>  
  11.       <rar-name>activemq-ra.rar</rar-name>  
  12.       <connection-definition>javax.jms.QueueConnectionFactory</connection-definition>  
  13.       <ServerUrl>tcp://localhost:61616</ServerUrl>  
  14.       <min-pool-size>1</min-pool-size>  
  15.       <max-pool-size>200</max-pool-size>  
  16.       <blocking-timeout-millis>30000</blocking-timeout-millis>  
  17.       <idle-timeout-minutes>3</idle-timeout-minutes>  
  18.    </tx-connection-factory>  
  19.   
  20.    <tx-connection-factory>  
  21.       <jndi-name>activemq/TopicConnectionFactory</jndi-name>  
  22.       <xa-transaction/>  
  23.       <track-connection-by-tx/>  
  24.       <rar-name>activemq-ra.rar</rar-name>  
  25.       <connection-definition>javax.jms.TopicConnectionFactory</connection-definition>  
  26.       <ServerUrl>tcp://localhost:61616</ServerUrl>  
  27.       <min-pool-size>1</min-pool-size>  
  28.       <max-pool-size>200</max-pool-size>  
  29.       <blocking-timeout-millis>30000</blocking-timeout-millis>  
  30.       <idle-timeout-minutes>3</idle-timeout-minutes>  
  31.    </tx-connection-factory>  
  32.       
  33.    <mbean code="org.jboss.resource.deployment.AdminObject" name="activemq.queue:name=outboundQueue">  
  34.       <attribute name="JNDIName">activemq/queue/outbound</attribute>  
  35.       <depends optional-attribute-name="RARName">jboss.jca:service=RARDeployment,name=&apos;activemq-ra.rar&apos;</depends>  
  36.       <attribute name="Type">javax.jms.Queue</attribute>  
  37.       <attribute name="Properties">PhysicalName=queue.outbound</attribute>  
  38.    </mbean>  
  39.   
  40.    <mbean code="org.jboss.resource.deployment.AdminObject" name="activemq.topic:name=inboundTopic">  
  41.       <attribute name="JNDIName">activemq/topic/inbound</attribute>  
  42.       <depends optional-attribute-name="RARName">jboss.jca:service=RARDeployment,name=&apos;activemq-ra.rar&apos;</depends>  
  43.       <attribute name="Type">javax.jms.Topic</attribute>  
  44.       <attribute name="Properties">PhysicalName=topic.inbound</attribute>  
  45.    </mbean>  
  46.   
  47. </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的整合。
分享到:
评论

相关推荐

    ActiveMQ in Action pdf英文版+源代码

    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.

    JBOSS 4.0.5 EJB3.0之MDB (ACTIVEMQ)

    NULL 博文链接:https://seanwon.iteye.com/blog/721230

    apache-activemq-5.11.2

    ⒋ 通过了常见J2EE服务器(如 Geronimo,JBoss 4,GlassFish,WebLogic)的测试,其中通过JCA 1.5 resource adaptors的配置,可以让ActiveMQ可以自动的部署到任何兼容J2EE 1.4 商业服务器上 ⒌ 支持多种传送协议:in-VM,...

    一个jms activemq Topic 消息实例

    一个jms activemq Topic 消息实例 关于jms JMS 是接口,相当于jdbc ,要真正使用它需要某些厂商进行实现 ,即jms provider 常见的jms provider 有 ActiveMQ JBoss 社区所研发的 HornetQ (在jboss6 中默认即可以...

    ActiveMQ in Action

    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 ...

    httpd(负载均衡)+Jboss集群高可用部署配置文件

    1、httpd在linux下部署配置文件 2、ActiveMQ在linux下部署配置文件 3、Tomcat在Linux下部署配置文件 4、Jboss在Linux下部署配置文件

    开发相关jar包,nosql,jdom,netty,mysql,连接池

    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-...

    ActiveMQ消息服务器-其他

    4、通过了常见J2EE服务器(如 Geronimo,JBoss 4,GlassFish,WebLogic)的测试,其中通过JCA 1.5 resource adaptors的配置,可以让ActiveMQ可以自动的部署到任何兼容J2EE 1.4 商业服务器上 5、支持多种传送协议:in-...

    jms-activemq-example:使用Apache ActiveMQ的Belajar JMS

    提供者,即面向消息的中间件或充当代理的应用程序,示例之一是Apache ActiveMQ,RabitMQ,Hive MQTT,IBM MQ,JBoss Messaging等。 客户端,它是充当消息的发送者或接收者的应用程序。 生产者/发布者,它是充当...

    getting_started_with_activemq:模子

    ActiveMQ 入门该项目包括许多示例配置,显示了各种 ActiveMQ 高可用性场景。 其中包括:主从、经纪人网络和主从经纪人网络。 该项目还包括一个简单的 JMS 队列(点对点)消息生产者和消息消费者。 笔记: 所有说明都...

    a-mq-test-cases:ActiveMQ测试用例

    有关如何从ActiveMQ安装中启动(命令行)代理的说明不适用于JBoss A-MQ(例如bin/amq ),因为JBoss A-MQ已在Apache Karaf容器内部署了ActiveMQ以允许对配置进行运行时更新信息(在Apache ActiveMQ上则需要重新启动...

    fuse:JBoss Fuse是一个开源ESB,在单个集成发行版中具有基于Apache Camel,Apache CXF,Apache ActiveMQ,Apache Karaf和Fabric8的功能。

    保险丝 JBoss Fuse是一个开源ESB,在单个集成发行版中具有基于Apache Camel,Apache CXF,Apache ActiveMQ,Apache Karaf和Fabric8的功能。

    java开源包4

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...

    basic-web-service:JBoss Fuse(与Fabric一起使用)入门指南

    布局 标题 ...Apache ActiveMQ-提供与ESB的核心消息传递以及与外部应用程序的集成 Apache Karaf-提供基于的轻量级容器 Fabric8-从中央位置简化分布式JBoss Fuse部署的管理 入门 我们将使用[JBoss Deve

    基于JAVA+SpringBoot智能交通站务管理系统+项目说明.zip

    (4)、消息队列:ActiveMQ; (5)、接口:Axis2(1.7.9); (6)、接口部署:≥Tomcat8、Jboss等; ###系统特色: (1)、前端界面经典Ribbon样式自适应,外观显示、字体等用户可自定义,win7\win10系统下完美运行; (2)、...

    apache-artemis包

    由jboss捐献的HornetQ的衍生版本,可能作为下一代ActiveMQ的存在。 Artemis 服务器 选择Artemis的原因开源、高可用性、Java编写、高性能的日志保证持久化消息像非持久化消息一样拥有出色的表现、功能齐全、简洁的...

    course-sys-int-activemq-seminar

    #ActiveMQ研讨会##任务1)准备环境下载 (需要注册) 如果您下载了JBoss Fuse,则可以跳过此步骤提取下载的文件通过注释掉$ {INSTALLATION-FOLDER} /etc/users.properties中的最后一行来添加默认用户通过执行以下...

    activemq-course

    #ActiveMQ研讨会 ##任务1)准备环境 下载 (需要注册) 如果您下载了JBoss Fuse,则可以跳过此步骤 提取下载的文件 通过注释掉$ {INSTALLATION-FOLDER} /etc/users.properties中的最后一行来添加默认用户 通过执行...

Global site tag (gtag.js) - Google Analytics