0

我们已经在我们的 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);
            }
          });

谢谢, 凯瑟尔

4

1 回答 1

1

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

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

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

于 2013-02-12T14:11:40.427 回答