EJB消息驱动的注释中的多个队列

问题描述

| 我有3个队列,MDBbean需要侦听这三个队列,因此,根据读取输入,我将为每种输入类别拆分任务。 截至目前,该代码仅适用于一个队列,而我不知道如何针对多个队列实施该代码。你能指导我吗 @MessageDriven(mappedname = \“ receiver1 \”) 公共类MDBMessages实现MessageListener 我如何使我的MDBMessage侦听Receiver2和Receiver 3队列。 谢谢 普拉巴卡     

解决方法

从文档:   为消息定义了消息驱动的bean   单一消息传递类型,根据   与消息监听器接口   雇用。 因此,将不可能为多个目标类型映射MDB。 还没有尝试过,但是您可以尝试在ejb-jar.xml中使用指向同一类的不同JNDI名称配置MDB,并为每个名称添加不同的目的地。如果配置可行,则MDBMessages将能够侦听xml中所有指定队列的消息。     ,使用部署描述符创建mdb的多个实例。每个实例侦听一个队列。 还有一些代理(例如activeMQ),如果它们使用activemq资源适配器,则它们允许一个mdb侦听同一类型(队列,主题)的多个目标。     ,
@Consumer(activationConfig = { @ActivationConfigProperty(
propertyName = \"destinationType\",propertyValue = \"javax.jms.Queue\"),@**ActivationConfigProperty(propertyName = \"destination\",propertyValue = \"queue/MyTasksProcess\"),**

public class MyProcessorMDBean implements Downloader {

public void processSomething(Serializable anyParameter){
//Do the actual processing
}
对于给定的消息驱动bean,您可以将消息路由到单个队列中,因此只能在bean类中使用单个目标类型。