2016-08-23 2 views
0

Ich habe einen einfachen JMS-Topic-Listener, den ich mit einer Federintegrationskette haken möchte.
Wenn eine JMS-Nachricht im Listener empfangen wird, muss sie grundsätzlich in den Channel der Kette geschoben werden. Eventuell wird die Nachricht verarbeitet und an einen Outbound-Channel-Adapter gesendet, um sie zu verbrauchen.
Die Dokumentation der Spring Integration erwähnt die Verwendung von asynchronen Gateways, die jedoch Futures verwendet. Gibt es nicht eine einfache Möglichkeit, die Nachricht einfach auf einen Kanal zu stellen?
Wenn es ein Beispiel gibt, auf das Sie zeigen können, wäre es großartig.
Dank
Grüße
MartinAsynchrones Drücken von Nachrichten im Kanal (Federintegration)

Antwort

1

Wenn Sie den Fluss auf dem Listener-Thread ausgeführt werden sollen, einfach ein reguläres Gateway verwenden (kein async ein); Dadurch kann die Nachricht zurückgesetzt werden, wenn der Datenfluss aus irgendeinem Grund fehlschlägt.

Wenn Sie "feuern und vergessen" möchten, können Sie den Anforderungskanal vom Gateway an ExecutorChannel senden - siehe here.

+0

Danke Gary für die schnelle Antwort! –

+0

Die Antwort im Listener-Thread ist zumindest jetzt in Ordnung. Die Gateway-Konfiguration verwendet nur eine Schnittstelle. Ich müsste meine eigene Implementierung definieren. Wie würde ich das spezifizieren? Danke –

+0

Sie nicht/kann nicht - das Framework generiert die Implementierung (Wraps die Argumente in eine 'Nachricht ' - siehe [die Dokumentation] (http://docs.spring.io/spring-integration/reference/html /messaging-endpoints-chapter.html#gateway)). Wenn Sie weitere Manipulationen durchführen möchten, fügen Sie einen ' 'downstream hinzu. –

Verwandte Themen