org.springframework.messaging.MessageDeliveryException: у Dispatcher нет подписчиков на канал - PullRequest
0 голосов
/ 01 сентября 2018

При попытке запустить нижеприведенный поток интеграции пружин я получаю сообщение об ошибке: -

org.springframework.jms.listener.DefaultMessageListenerContainer [consumeTradeJSONChannelAdapter.container-9][]: Execution of JMS message listener failed, and no ErrorHandler has been set.
**org.springframework.messaging.MessageDeliveryException: Dispatcher has no subscribers for channel 'application.buildCitiFIXChannel'**.; nested exception is org.springframework.integration.MessageDispatchingException: Dispatcher has no subscribers

Пожалуйста, помогите

<int:channel id="consumeTradeJSONChannel" />
<int-jms:message-driven-channel-adapter
    id="consumeTradeJSONChannelAdapter" destination="consumetradejsonmessagesqueue"
    connection-factory="consumerauthenticationconnectionfactory" channel="consumeTradeJSONChannel"
    acknowledge="transacted" auto-startup="true" 
    concurrent-consumers="100"  max-concurrent-consumers="100" />
<int:channel id="buildCitiFIXChannel">
    <int:interceptors>
        <int:wire-tap channel="citiFIXMessageLogger" />
    </int:interceptors>
</int:channel>
<int:json-to-object-transformer id="jsontoTradeBOtransformer"
    input-channel="consumeTradeJSONChannel" output-channel="buildCitiFIXChannel" type="com.citigroup.valueobject.TradeDetailsVO" />
<int:transformer id="citiFIXMessageBuilder" ref="citiFIXMessageBuilder" method="buildCitiFIXmessage" 
    input-channel="buildCitiFIXChannel" output-channel="endOfFlowChannel" />
<bean id="citiFIXMessageBuilder" class="com.citigroup.customtransformer.FIXMessageBuilder" />   
<int:channel id="endOfFlowChannel" />   
<int:bridge id="endofflow"  input-channel="endOfFlowChannel" output-channel="nullChannel" />
<int:logging-channel-adapter id="citiFIXMessageLogger" logger-name="citiFIXMessageLogger" level="INFO" log-full-message="true" />`

1 Ответ

0 голосов
/ 01 сентября 2018

У диспетчера нет подписчиков на канал 'application.buildCitiFIXChannel'

Обычно это происходит, когда потребитель на канале не запущен. Поскольку у вашего citiFIXMessageBuilder нет auto-startup="false", это может быть только причиной того, что <int-jms:message-driven-channel-adapter> запущен слишком рано.

Попробуйте добавить phase="2147483647" к <int-jms:message-driven-channel-adapter>, чтобы запустить его как можно позже. (Я предполагаю, что вы используете очень старую версию Spring Integration, потому что такая проблема уже давно исправлена.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...