0

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

4

1 回答 1

0

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

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

于 2016-03-21T21:48:51.367 回答