Jakarta ee 如何设置JavaEE消息驱动Bean来侦听多个队列?

Jakarta ee 如何设置JavaEE消息驱动Bean来侦听多个队列?,jakarta-ee,jms,jboss-mdb,Jakarta Ee,Jms,Jboss Mdb,我有一个JavaEE消息驱动bean,它需要侦听多个队列(9个不同的队列)。我知道我可以定义9个不同的消息bean(每个消息bean对应一个唯一的队列),只需为业务逻辑使用一些公共类,但似乎应该有更好的方法。我能找到的唯一替代方法是使用ejb-jar.xml来定义9个不同的bean。这似乎是一个更好的选择,但随之而来的问题是代码在运行时知道其消息目的地是什么。如何做到这一点?我想是反思,但有更好的方法吗? 以防万一我不够清楚,我希望让同一个MDB监听多个“目的地”。这是通过注释设置的目的地“ @

我有一个JavaEE消息驱动bean,它需要侦听多个队列(9个不同的队列)。我知道我可以定义9个不同的消息bean(每个消息bean对应一个唯一的队列),只需为业务逻辑使用一些公共类,但似乎应该有更好的方法。我能找到的唯一替代方法是使用ejb-jar.xml来定义9个不同的bean。这似乎是一个更好的选择,但随之而来的问题是代码在运行时知道其消息目的地是什么。如何做到这一点?我想是反思,但有更好的方法吗? 以防万一我不够清楚,我希望让同一个MDB监听多个“目的地”。这是通过注释设置的目的地“
@ActivationConfigProperty(propertyName=“destination”,propertyValue=“queue1”)

您也可以创建一个没有注释的基本MDB,然后为每个目标创建9个不同的扩展名(没有正文),但是XML策略听起来更好。您可以从消息中确定目标


理想情况下,您可以选择一个支持虚拟目的地的JMS实现,如ActiveMQ,其中一个复合目的地面对多个物理目的地。

归功于@justanother程序员