Ich habe mehrere Spring-Integration-Elemente in der XML-Datei konfiguriert (siehe unten) Vom amqp Channel Adapter werden die Nachrichten an den Router integrationSecondaryRouter geleitet, der die Implementierung integrationRouterImpl hat.Wie erzwinge Rabbit MQ, um Nachrichten zu sammeln und wieder zu senden?
Wenn in integrationRouterImpl ein Ausnahmefehler auftritt, erwarte ich, dass der Rabbit MQ die Nachricht immer wieder sendet. Dies geschieht jedoch nicht. Der Rabbit MQ-Monitor zeigt keine Nachrichtenanhäufung an. Ein Fehler in meiner Konfiguration?
<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"
/>