Слушатель и издатель JMS Queue с использованием MDB в jboss с использованием java

У меня есть требование как:

Сообщения в очереди, скажем, A, должны использоваться двумя разными приложениями. Я пытаюсь реализовать MDB для прослушивания этой очереди и публикации этого сообщения в другой теме, откуда приложения могут использовать.

  1. Является ли это возможным?
  2. Доступен ли он как некоторая конфигурация в jboss.. Я заново изобретаю велосипед?
  3. Любая помощь в этом для достижения..

Код:

@MessageDriven(activationConfig = {
    @ActivationConfigProperty(propertyName = "destinationLookup", propertyValue = "queue/test.queue"),
    @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue") })
public class MyListener implements MessageListener {

private JmsTemplate jmsTemplate;

public MyListener(JmsTemplate jmsTemplate) {
    this.jmsTemplate = jmsTemplate;
}

public void onMessage(Message message) {
    System.out.println("Message received");
    // TextMessage textMessage = (TextMessage) message;
    publishMessage(message);
    System.out.println("Message re-published");
}

Заранее спасибо.


person Anitha.R    schedule 28.08.2019    source источник
comment
1. Да, возможно. Я реализовал это. Но столкнулся с проблемой: сообщение получено через MDB и не публикуется в теме. Но никаких ошибок. Любая помощь приветствуется. Код обновлен.   -  person Anitha.R    schedule 28.08.2019
comment
Как вы подтверждаете, что в теме не было опубликовано ни одного сообщения? Есть подписчик в теме при отправке сообщения?   -  person Justin Bertram    schedule 29.08.2019
comment
какой у вас исходный код для publishMessage? И какой у вас провайдер JMS? Многие реализации JMS имеют параметр конфигурации для «связывания» очередей и тем с другими темами. Например, TIBCO, Solace, IBM MQ, ...   -  person Axel Podehl    schedule 03.09.2019


Ответы (1)


Если одно и то же сообщение должно быть использовано двумя разными приложениями, то оба приложения должны подписаться на одну и ту же тему, и сообщение должно быть отправлено в эту тему. Таким образом, оба приложения получат сообщение, и вам не нужно будет тратить время на повторную отправку сообщения самостоятельно.

person Justin Bertram    schedule 28.08.2019
comment
Исходное приложение, которое отправляет сообщения, не имеет возможности отправлять сообщения в тему. Он поддерживает только очередь. И это у этого требования. - person Anitha.R; 29.08.2019
comment
Это важная информация, которая должна быть частью вашего вопроса. - person Justin Bertram; 29.08.2019