1、在%JBOSS_HOME%\server\default\deploy下面创建activemq-ra.rar目录,将activemq-rar-5.1.0.rar(activemq-rar-5.1.0.rar在apache-activemq-5.1.0\lib\optional下面找到)解压缩到这个目录下。

2、将xbean-spring-3.3.jar(在上一步解压的文件中可以找到)剪切到%JBOSS_HOME%\server\default\lib下。

3、修改META-INF\ra.xml(相对步骤1解压后的文件夹),让JBoss使用broker-config.xml 作为默认的配置文件配置borker. 修改下面的地方:
<config-property-value>config-property-value>
<!-- <config-property-value>xbean:broker-config.xml</config-property-value>-->
改为:
<!-- <config-property-value></config-property-value> -->
<config-property-value>xbean:broker-config.xml<config-property-value>
说明:表示使用broker-config.xml来配置启动ActiveMQ.
4、修改borker-config.xml(相对步骤1解压后的文件夹下),默认的borker-config.xml会产生一个错误,无论是我使用的版本还是最后的snapshot版本,默认的borker-config.xml都会让xbean-spring 3.3抛出exception.解决的办法如下 :
将
<beans xmlns="http://activemq.org/config/1.0">
<broker useJmx="true" >
改为
<beans>
<broker useJmx="true" xmlns="http://activemq.org/config/1.0">

5、使用整合完毕的ActiveMQ作为ds绑定到JBoss的JNDI服务。
编写%JBOSS_HOME%\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>vm://localhost</ServerUrl>
<!--
<UserName>sa</UserName>
<Password></Password>
-->
<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>vm://localhost</ServerUrl>
<!--
<UserName>sa</UserName>
<Password></Password>
-->
<min-pool-size>1</min-pool-size>
<max-pool-size>20</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>
