Jakarta ee 将JBoss 5.1 MDB连接到Websphere MQ队列

Jakarta ee 将JBoss 5.1 MDB连接到Websphere MQ队列,jakarta-ee,jboss5.x,ibm-mq,message-driven-bean,Jakarta Ee,Jboss5.x,Ibm Mq,Message Driven Bean,我正在尝试将运行jboss3.x的系统升级到jboss5.1。 系统在WebSphere MQ中使用MDB侦听队列,因此“消息驱动”通过“配置名称”连接到容器/“invoker-proxy-binding”——我想这是连接到远程队列的标准方式 JBoss 5.1的问题是JBoss_5_1.xsd没有配置名称和调用程序代理绑定。到目前为止,我发现连接JBoss 5.1 MDB到远程队列的所有示例都不是使用JBoss_5_1.xsd,而是使用JBoss_5_0.dtd 使用jboss_5_0.dtd

我正在尝试将运行jboss3.x的系统升级到jboss5.1。 系统在WebSphere MQ中使用MDB侦听队列,因此“消息驱动”通过“配置名称”连接到容器/“invoker-proxy-binding”——我想这是连接到远程队列的标准方式

JBoss 5.1的问题是
JBoss_5_1.xsd
没有
配置名称
调用程序代理绑定
。到目前为止,我发现连接JBoss 5.1 MDB到远程队列的所有示例都不是使用
JBoss_5_1.xsd
,而是使用
JBoss_5_0.dtd


使用
jboss_5_0.dtd我会错过什么?在5.1中应该如何配置它?

Hm,我知道这是一个有点老的问题,但无论如何:我让它在5.1上使用ejb3-interceptors-aop.xml中定义的激活配置

<domain name="zzz.ejb.mdb.MessageReceiver" extends="Message Driven Bean" inheritBindings="true">
     <!-- annotation must be documented on one line without CR/LF -->
     <annotation expr="!class(@org.jboss.ejb3.annotation.DefaultActivationSpecs)">
                        @org.jboss.ejb3.annotation.DefaultActivationSpecs ({ @javax.ejb.ActivationConfigProperty(propertyName = "messagingType", propertyValue="javax.jms.MessageListener"), @javax.ejb.ActivationConfigProperty(propertyName = "destinationType",propertyValue = "javax.jms.Queue"), @javax.ejb.ActivationConfigProperty(propertyName = "destination", propertyValue = "zzz/jms/LocalQueue"), @javax.ejb.ActivationConfigProperty(propertyName = "useJNDI", propertyValue = "true"), @javax.ejb.ActivationConfigProperty(propertyName = "queueManager", propertyValue = "ZZZ.QMGR"), @javax.ejb.ActivationConfigProperty(propertyName = "hostName", propertyValue = "172.21.100.10"), @javax.ejb.ActivationConfigProperty(propertyName = "port", propertyValue = "1415"), @javax.ejb.ActivationConfigProperty(propertyName = "transportType", propertyValue = "CLIENT"), @javax.ejb.ActivationConfigProperty(propertyName = "maxPoolDepth", propertyValue = "1")})
    </annotation>
</domain>

@org.jboss.ejb3.annotation.DefaultActivationSpecs({@javax.ejb.ActivationConfigProperty(propertyName=“messagingType”,propertyValue=“javax.jms.MessageListener”),@javax.ejb.ActivationConfigProperty(propertyName=“destinationType”,propertyValue=“javax.jms.Queue”),@javax.ejb.ActivationConfigProperty(propertyName=“destination”,propertyValue=“zzz/jms/LocalQueue”),@javax.ejb.ActivationConfigProperty(propertyName=“useJNDI”,propertyValue=“true”),@javax.ejb.ActivationConfigProperty(propertyName=“queueManager”,propertyValue=“zzz.QMGR”),@javax.ejb.ActivationConfigProperty(propertyName=“hostName”,propertyValue=“172.21.100.10”),@javax.ejb.ActivationConfigProperty(propertyName=“port”,propertyValue=“1415”),@javax.ejb.ActivationConfigProperty(propertyName=“transportType”,propertyValue=“CLIENT”),@javax.ejb.ActivationConfigProperty(propertyName=“maxPoolDepth”,propertyValue=“1”))
请注意,注释位于一行中

此外,我为队列定义了一个mbean(如下所示):


zzz/jms/LocalQueue
jca:service=RARDeployment,name='wmq.jmsra.rar'
javax.jms.Queue
baseQueueManagerName=ZZZ.QMGR
baseQueueName=ZZZ.QUEUE

我希望这会有所帮助,我知道这是一个有点老的问题,但无论如何:我让它在5.1上使用ejb3-interceptors-aop.xml中定义的激活配置

<domain name="zzz.ejb.mdb.MessageReceiver" extends="Message Driven Bean" inheritBindings="true">
     <!-- annotation must be documented on one line without CR/LF -->
     <annotation expr="!class(@org.jboss.ejb3.annotation.DefaultActivationSpecs)">
                        @org.jboss.ejb3.annotation.DefaultActivationSpecs ({ @javax.ejb.ActivationConfigProperty(propertyName = "messagingType", propertyValue="javax.jms.MessageListener"), @javax.ejb.ActivationConfigProperty(propertyName = "destinationType",propertyValue = "javax.jms.Queue"), @javax.ejb.ActivationConfigProperty(propertyName = "destination", propertyValue = "zzz/jms/LocalQueue"), @javax.ejb.ActivationConfigProperty(propertyName = "useJNDI", propertyValue = "true"), @javax.ejb.ActivationConfigProperty(propertyName = "queueManager", propertyValue = "ZZZ.QMGR"), @javax.ejb.ActivationConfigProperty(propertyName = "hostName", propertyValue = "172.21.100.10"), @javax.ejb.ActivationConfigProperty(propertyName = "port", propertyValue = "1415"), @javax.ejb.ActivationConfigProperty(propertyName = "transportType", propertyValue = "CLIENT"), @javax.ejb.ActivationConfigProperty(propertyName = "maxPoolDepth", propertyValue = "1")})
    </annotation>
</domain>

@org.jboss.ejb3.annotation.DefaultActivationSpecs({@javax.ejb.ActivationConfigProperty(propertyName=“messagingType”,propertyValue=“javax.jms.MessageListener”),@javax.ejb.ActivationConfigProperty(propertyName=“destinationType”,propertyValue=“javax.jms.Queue”),@javax.ejb.ActivationConfigProperty(propertyName=“destination”,propertyValue=“zzz/jms/LocalQueue”),@javax.ejb.ActivationConfigProperty(propertyName=“useJNDI”,propertyValue=“true”),@javax.ejb.ActivationConfigProperty(propertyName=“queueManager”,propertyValue=“zzz.QMGR”),@javax.ejb.ActivationConfigProperty(propertyName=“hostName”,propertyValue=“172.21.100.10”),@javax.ejb.ActivationConfigProperty(propertyName=“port”,propertyValue=“1415”),@javax.ejb.ActivationConfigProperty(propertyName=“transportType”,propertyValue=“CLIENT”),@javax.ejb.ActivationConfigProperty(propertyName=“maxPoolDepth”,propertyValue=“1”))
请注意,注释位于一行中

此外,我为队列定义了一个mbean(如下所示):


zzz/jms/LocalQueue
jca:service=RARDeployment,name='wmq.jmsra.rar'
javax.jms.Queue
baseQueueManagerName=ZZZ.QMGR
baseQueueName=ZZZ.QUEUE
我希望这有帮助