【问题标题】:JMS Queue listener and publisher using MDB in jboss using javaJMS 队列监听器和发布者在 jboss 中使用 MDB 使用 java
【发布时间】:2020-01-01 08:18:05
【问题描述】:

我有一个要求:

队列中的消息,比如 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");
}

提前致谢。

【问题讨论】:

  • 1.是的,可能。我已经实施了。但是面临一个问题:通过 MDB 接收到的消息并且它没有发布到主题。但没有错误。任何帮助将非常感激。代码已更新。
  • 您如何确认没有消息发布到该主题?发送消息时,该主题是否有订阅者?
  • 您的 publishMessage 源代码是什么?你的 JMS 提供者是什么?许多 JMS 实现具有将队列和主题“桥接”到其他主题的配置选项。例如 TIBCO、Solace、IBM MQ、...

标签: java jms message-queue jboss-mdb


【解决方案1】:

如果相同的消息需要被 2 个不同的应用程序使用,那么两个应用程序都应该订阅同一个主题,并且应该将消息发送到该主题。这样,两个应用程序都会收到消息,而您无需浪费时间自己重新发送消息。

【讨论】:

  • 发送消息的源应用程序没有发送到主题的能力。它只支持队列。这就是你的要求。
  • 这是您问题中应该包含的重要信息。
猜你喜欢
  • 2012-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-03
  • 2014-09-16
  • 2014-10-20
  • 2010-11-05
  • 1970-01-01
相关资源
最近更新 更多