2012-06-29 4 views
1

У меня есть небольшая проблема, и я выяснил, где, когда и почему это происходит, но я понятия не имел, как это исправить. Проблема заключается в следующем:У диспетчера нет подписчиков

У меня есть jms: адаптер исходящего канала, шлюз и прямой канал. И между ConsumerEndpointFactoryBean, инициализированным моей адаптером и активным конечным пунктом жизненного цикла, я получаю сообщение. Так оно вызвало org.springframework.integration.MessageDeliveryException: Диспетчер не имеет подписчиков

Как я могу сказать, что конечная точка ожидания отправителя была активирована?

ответ

0

Внедрить SmartLifeCycle и вернуть фазу Integer.MAX_VALUE. Затем ваш компонент будет инициализирован одним из последних (CEFB имеет фазу = 0).

+0

Благодарим за сообщение. Могу ли я сделать это без SmartLifeCycle? Я думаю о том, чтобы вводить LifeCycle в свой отправитель как свойство и запускать конечную точку вручную. –

+0

Да, autoStart = false + ручной запуск должен работать. Другой вариант - реализовать ApplicationListener и использовать это событие, чтобы сигнализировать, что контекст приложения полностью испечен. –

+0

благодарим за ваши ответы, я выбираю ручной запуск, и это решение работает. –

Смежные вопросы