2016-03-21 5 views
0

У меня есть Java EE, управляемый сообщениями, который должен прослушивать несколько очередей (9 разных очередей). Я понимаю, что я могу определить 9 различных бобов сообщений (по одной для каждой уникальной очереди) и просто использовать некоторый общий класс для бизнес-логики, но кажется, что должен быть лучший метод. Единственная альтернатива, которую я могу найти, - это использовать ejb-jar.xml для определения 9 различных компонентов. Это похоже на лучший вариант, но при этом возникает проблема с кодом, зная, каково его назначение для сообщения во время выполнения. Как это может быть сделано? Я полагаю, что есть отражение, но есть ли лучший способ? На всякий случай я не был достаточно ясен. Я ищу, чтобы один и тот же MDB прослушал несколько «пунктов назначения». Вот назначения создаются с помощью аннотации» @ActivationConfigProperty (ИмяСвойства =„пункт назначения“, PropertyValue =„queue1“)Как настроить Java EE Message Driven Bean для прослушивания нескольких очередей?

+0

Кредит to @JustAnotherProgrammer –

ответ

0

Вы также можете создать одну базовую MDB без аннотации, затем 9 различных расширений (без тела) аннотированный для каждого пункта назначения , но стратегия XML звучит лучше. вы можете определить адресат из сообщения.

в идеале, вы можете выбрать реализацию JMS, которая поддерживает виртуальные направления, такие как ActiveMQ, где композитные фронты назначения несколько физических направления.