`

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

    博客分类:
  • jms
阅读更多
关键字:   ActiveMQ    

      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_实践之路

    【ActiveMQ 实践之路】 ActiveMQ,作为最流行的开源消息代理,是Apache软件基金会的产品,致力于提供高效、可靠的异步通信解决方案。它完全遵循JMS 1.1和J2EE 1.4规范,即使这些规范已相对较旧,但JMS在现代企业级...

    activemq-ra-4.0-M3.jar.zip

    而`activemq-ra-4.0-M3.jar`则是ActiveMQ资源适配器(Resource Adapter)的一个版本,用于集成到Java EE应用服务器中,如JBoss、Glassfish等。 RA(Resource Adapter)是Java EE规范的一部分,它定义了应用程序...

    ActiveMQ教程+配置[归纳].pdf

    Apache ActiveMQ 是一款开源的、基于 Apache 2.0 许可证发布的消息中间件,它遵循Java消息服务(JMS)1.1和J2EE 1.4规范。作为最流行和强大的消息中间件之一,ActiveMQ 提供了多种语言和协议的支持,如Java、C、C++...

    JBOSS 4.0.5 EJB3.0之MDB (ACTIVEMQ)

    **JBoss 4.0.5 EJB3.0与MDB (ActiveMQ)** JBoss 4.0.5是Red Hat公司推出的企业级Java应用服务器版本,它支持EJB3.0规范,这是一种用于构建分布式企业级应用程序的组件模型。EJB(Enterprise JavaBeans)是Java EE...

    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.

    activemq-ra-4.0-M2.jar.zip

    `activemq-ra-4.0-M2.jar`是ActiveMQ的资源适配器版本4.0的第二个预发布版(M2),它允许将ActiveMQ集成到Java EE应用程序服务器中,如JBoss、WebLogic或GlassFish。 **RA的作用** 资源适配器是Java EE平台中的关键...

    activemq-ra-3.1-M1.jar.zip

    此JAR文件是ActiveMQ的资源适配器,它允许应用程序服务器如JBoss、WebLogic或Glassfish等与ActiveMQ进行通信,以便在分布式环境中实现异步消息传递。资源适配器是Java EE平台的一部分,它提供了一种标准的方式来集成...

    activemq-ra-1.4.jar.zip

    1. JCA兼容性:1.4版本的ActiveMQ RA完全符合JCA 1.5规范,确保与各种Java EE应用服务器的兼容性,如WebLogic、WebSphere、JBoss等。 2. 集成便利:通过JCA,ActiveMQ RA 1.4.jar可被配置到应用服务器的资源适配器...

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

    三、ActiveMQ高可用部署 ActiveMQ作为Java消息服务(JMS)的实现,用于实现应用程序之间的异步通信。在Linux下部署ActiveMQ集群,以提高消息传递的可靠性和性能: 1. 安装ActiveMQ:下载并解压ActiveMQ至指定目录...

    apache-activemq-5.8.0-bin.zip

    Apache ActiveMQ是Apache软件基金会开发的一个开源消息中间件,它基于Java Message Service(JMS)规范,用于在分布式系统中高效地传输数据。这个压缩包"apache-activemq-5.8.0-bin.zip"包含了ActiveMQ 5.8.0版本的...

    activemq-ra-3.1-M6.jar.zip

    ActiveMQ,作为一款开源的消息中间件,是Apache软件基金会的重要项目之一,广泛应用于分布式系统中的消息传递。其Remote Activation(RA)模块,即activemq-ra,是ActiveMQ提供的一种资源适配器,使得应用程序能够与...

    ActiveMQ教程+配置[参照].pdf

    Apache ActiveMQ 是一款高度活跃且功能丰富的开源消息中间件,基于Apache 2.0许可发布。作为Java消息服务(JMS)提供商,ActiveMQ 提供了多种消息传递模式,包括点对点和发布/订阅模式,使其适用于各种分布式系统中...

    activemq-ra-2.1.jar.zip

    `activemq-ra-2.1.jar`文件是ActiveMQ的特定版本(2.1)的RA实现,允许Java EE应用服务器如JBoss、GlassFish等无缝地使用ActiveMQ作为其JMS服务提供商。 此`jar`文件的`zip`压缩包中包含两个文件:`activemq-ra-2.1...

    activemq-ra-3.2.3.jar.zip

    在3.x系列中,ActiveMQ RA致力于提供更好的稳定性和兼容性,以适应不同版本的应用服务器和JMS规范。 压缩包内包含两个文件:activemq-ra-3.2.3.jar 和 license.txt。activemq-ra-3.2.3.jar 文件是实际的资源适配器...

    activemq-ra-3.1-M3.jar.zip

    三、activemq-ra-3.1-M3.jar详解 该jar文件是ActiveMQ RA的实现,包含所有必要的类和资源,用于在Java EE环境中部署和使用ActiveMQ。开发者可以通过将这个jar添加到应用服务器的类路径来启用ActiveMQ的连接。同时,...

    activemq-ra-3.2.jar.zip

    标题中的"activemq-ra-3.2.jar.zip"是一个归档文件,它包含了ActiveMQ的一个特定版本(3.2)的资源适配器(Resource Adapter,简称RA)。这个文件被压缩成ZIP格式,便于传输和存储。在Java环境中,JAR(Java Archive...

    activemq-ra-2.0.jar.zip

    在实际应用中,`activemq-ra-2.0.jar`常被部署在Java EE应用服务器如Tomcat、JBoss或WebLogic等中。开发者需要确保其配置正确,包括设置正确的连接URL、用户名、密码,以及适配器的其他参数,以便应用程序能正确地...

    activemq-ra-3.0.jar.zip

    它作为资源适配器,负责将ActiveMQ的消息传递功能集成到Java EE应用服务器中,如JBoss、WebLogic或GlassFish等。通过RA,应用服务器上的应用程序可以利用JCA(Java Connector Architecture)规范来连接和操作...

    activemq-ra-3.2.1.jar.zip

    总结来说,`activemq-ra-3.2.1.jar.zip`是ActiveMQ资源适配器的一个版本,用于在Java EE环境中整合ActiveMQ的功能。它通过JAR文件的形式提供,内含实现代码和资源,并附带了许可协议。使用这个组件,开发者可以轻松...

    activemq-rar-5.2.0.rar

    RAR文件主要用于Java EE应用服务器,如JBoss或WebLogic,它包含了一个JCA(Java Connector Architecture)资源适配器,使得应用服务器可以与消息中间件ActiveMQ集成。 描述中提到的“rar”是Java的资源适配器打包...

Global site tag (gtag.js) - Google Analytics