【问题标题】:JMS Query: How to define Topic along with Queue?JMS Query:如何定义主题和队列?
【发布时间】:2013-01-27 08:11:09
【问题描述】:

我们已经在 jms-context.xml 中定义了 inboundConnector,正如 http://activemq.apache.org/jms-and-jdbc-operations-in-one-transaction.html 中为队列指定的那样

我为主题定义了一个新的 inboundTopicConnector,当我为该主题发送一条消息时,它给出了以下错误 java.lang.UnsupportedOperationException: Adestination must be specified。

您能帮我解决这个问题吗?

在 jms-context.xml 中

bean id="inboundConnector" ....
property name="destinationType" value="javax.jms.Queue"

bean id="inboundTopicConnector" ...
property name="destination" value="${jms.topic}"
property name="destinationType" value="javax.jms.Topic"

在 jms-context-without-inbound-listeners.xml 中

bean id="sendTo" ...
bean id="topic" class="org.apache.activemq.command.ActiveMQTopic"
property name="physicalName" value="${jms.topic}"

在java文件中

@Autowired
  @Qualifier("topic")
  private Destination destination;
          getJMSTemplate().setPubSubDomain(true);
          getJMSTemplate().send(this.destination, new MessageCreator() {
            @Override
            public Message createMessage(Session session) throws JMSException {
              return session.createTextMessage("Hello...." + destination);
            }
          });

谢谢, 卡西尔

【问题讨论】:

    标签: jms spring-jms jms-topic


    【解决方案1】:

    每当 postinq 这样的问题时,您必须包括堆栈跟踪 - 和更完整的配置(例如 bean“主题”)。

    最好的猜测是未启用自动装配 - 所以目标字段是null。您可以在调试器中验证这一点。

    你加入了<context:annotation-config/>吗?这将启用自动装配。

    【讨论】:

      猜你喜欢
      • 2011-07-31
      • 2012-12-15
      • 2018-03-30
      • 2010-12-10
      • 2013-06-30
      • 2012-11-14
      • 2020-06-23
      • 2013-02-15
      • 1970-01-01
      相关资源
      最近更新 更多