0

Queueのhttp://activemq.apache.org/jms-and-jdbc-operations-in-one-transaction.htmlで指定されているように、jms-context.xml で inboundConnector を既に定義しています。

トピックの新しい inboundTopicConnector を定義しました。トピックのメッセージを送信すると、次のエラー java.lang.UnsupportedOperationException: A destination 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 に答える