在<< >>里面我们比较详细的讲解了ActiveMQ与JBoss的整合,
既然选择了JBoss,那么项目里面或多或少都会使用到EJB,下面我们就详细地介绍如何在ActiveMQ 4.x+JBOSS 4.x环境下开发
Message Driven Bean,并且与使用jbossMQ在配置上作了比较详细地比较。这里的OrderMessage 仅仅是一个自动生成的Message Driven Bean,在onMessage方法里面,作日志输入。
一. 配置ejb-jar.xml
1. ejb-jar.xml 不能使用XML DTD,需要使用XML Schema(XSD)
很多朋友可能使用XDoclet来生成ejb-jar.xml,我这里直接使用XDoclet生成的ejb-jar.xml是
但是在ActiveMQ+JBoss配置中间需要使用新的XML Schema才能完成对ra的定义,如下.
xml 代码
<ejb-jar xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd" version="2.1">
2. ejb-jar.xml 直接使用JBossMQ的Message DriverBean 和使用ActiveMQ RA配置的区别
(1) .使用JBossMQ的MessageDrivenBean的 ejb-jar.xml配置
xml 代码
<message-driven>
<description>
description>
<display-name>Name for OrderMessagedisplay-name>
<ejb-name>OrderMessageejb-name>
<ejb-class>com.mostone.ejb.OrderMessageejb-class>
<transaction-type>Containertransaction-type>
<acknowledge-mode>Auto-acknowledgeacknowledge-mode>
<message-driven-destination>
<destination-type>javax.jms.Queuedestination-type>
message-driven-destination>
message-driven>
(2). 使用ActiveMQ RA配置的MessageDrivenBean的ejb-jar.xml配置
xml 代码
<message-driven>
<description>
description>
<display-name>Name for OrderMessagedisplay-name>
<ejb-name>OrderMessageejb-name>
<ejb-class>com.mostone.ejb.OrderMessageejb-class>
<transaction-type>Containertransaction-type>
<acknowledge-mode>Auto-acknowledgeacknowledge-mode>
<activation-config>
<activation-config-property>
<activation-config-property-name>destinationactivation-config-property-name>
<activation-config-property-value>queue.outboundactivation-config-property-value>
activation-config-property>
<activation-config-property>
<activation-config-property-name>destinationTypeactivation-config-property-name>
<activation-config-property-value>javax.jms.Queueactivation-config-property-value>
activation-config-property>
activation-config>
message-driven>
其中destination,destinationType是ra.xml里面提供的配置属性,(这里官方的文档是Destination,DestinationType, 而实际上activemq-ra.rar里面的ra.xml是destination,destinationType,注意大小写区别)