У меня есть DefaultMessageListenerContainer, настроенный следующим образом:
DefaultMessageListenerContainer container = new DefaultMessageListenerContainer();
container.setConcurrentConsumers(4);
container.setConnectionFactory(connectionFactory);
container.setDestinationName(String.format("Consumer.%s.VirtualTopic.%s", group, topic));
container.setSessionAcknowledgeMode(Session.CLIENT_ACKNOWLEDGE);
container.setSessionTransacted(true);
container.setMessageListener(new DelegatingMessageListener(listener, messageMapper, event));
container.start();
Контейнер сообщений никогда не получает сообщения, и мой слушатель сообщений никогда не вызывается. Оставив все остальное без изменений, если я просто переключу DefaultMessageListenerContainer на SimpleMessageListenerContainer, он работает, но SimpleMessageListenerContainer не восстанавливается после потери соединения.
В журналах ошибок нет, и почти нет соответствующих сообщений. Есть ли у кого-нибудь причины, по которым это может происходить?
SimpleMessageListenerContainer
имеет переопределенныйdoStart
метод, который фактически создает слушателей. Я не вижу соответствующего кода вDefaultMessageListenerContainer
, что интересно. Может я что-то упускаю. - person Colin M   schedule 26.01.2014afterPropertiesSet()
. - person Gary Russell   schedule 26.01.2014