我在XML文件中配置了几个Spring-Integration元素(请参见下文),这些消息从amqp通道适配器定向到具有实现integrationRouterImpl的路由器integrationSecondaryRouter。
如果IntegrationRouterImpl中没有捕获到异常,我希望Rabbit MQ会一次又一次地发送消息。但是,这不会发生。Rabbit MQ监视器不显示任何消息累积。我的配置有错误吗?
<int-amqp:inbound-channel-adapter
channel="integrationFrontDoorQueueChannel"
queue-names="${integration.creation.orders.queue.name}"
header-mapper="integrationHeaderMapper"
connection-factory="connectionFactory"
error-channel="errorChannel"
/>
<int:chain
id="integrationFrontDoorQueueChain"
input-channel="integrationFrontDoorQueueChannel"
output-channel="integrationRouterChannel">
<int:transformer ref="integrationJsonPayloadTransformer" method="transformMessagePayload"/>
<int:filter ref="integrationNonDigitalCancellationFilter" method="filter"/>
<int:filter ref="integrationPartnerFilter" method="filter"/>
<int:filter ref="integrationOrderDtoDgcAndGoSelectFilter" method="filter"/>
</int:chain>
<int:header-value-router
id="integrationPrimaryRouter"
input-channel="integrationRouterChannel"
default-output-channel="integrationFrontDoorRouterChannel"
resolution-required="false"
header-name="#{T(com.smartdestinations.constants.SdiConstants).INTEGRATION_PAYLOAD_ACTION_HEADER_KEY}">
<int:mapping
value="#{T(com.smartdestinations.service.integration.dto.IntegrationAction).EXCLUSION_SCAN.name()}"
channel="integrationExclusionChannel"
/>
</int:header-value-router>
<int:router
id="integrationSecondaryRouter"
ref="integrationRouterImpl"
input-channel="integrationFrontDoorRouterChannel"
method="route"
resolution-required="false"
default-output-channel="nullChannel"
/>
看,您有关于此事error-channel="errorChannel"
的文档,并指出:
默认的“ errorChannel”是PublishSubscribeChannel。
是的,有一个订阅者。但是只是_org.springframework.integration.errorLogger
。
由于没有人将您的例外重新引发到SimpleMessageListenerContainer
,因此没有理由发送nack
消息并再次将其重新交付。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句