2013-02-12 1 views
0

Мы уже определили inboundConnector в нашем JMS-context.xml, как указано в http://activemq.apache.org/jms-and-jdbc-operations-in-one-transaction.html для очередиJMS Query: как определить тему вместе с очередью?

Я определил новую inboundTopicConnector для темы и, когда я отправить сообщение по этой теме дает следующее java.lang об ошибке .UsupportedOperationException: должен быть указан пункт назначения.

Не могли бы вы помочь мне решить проблему?

в 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-без въездного-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); 
      } 
      }); 

Спасибо, Касир

ответ

1

Всякий раз, когда postinq задает такие вопросы, вы должны включить трассировку стека - и более полную конфигурацию (например, bean "topic").

Лучшая догадка заключается в том, что Autowiring не включен - поэтому поле назначения null. Вы можете проверить это в отладчике.

Вы включили <context:annotation-config/>? Это позволяет автоувеличивать.