2012-04-09 5 views
0

Ich habe einen Kanal mit 2 Outbound-Channel-Adapter, die beide ein Message-Objekt mit den Ergebnissen ihrer Aktivitäten zurückgegeben. Dies funktionierte bis zum Upgrade auf SI 2.1. Jetzt erhalte ich eine Fehlermeldung aufgrund der Tatsache, dass eine Methode einen Nicht-Null-Wert zurückgibt.Spring Integration: geben Sie eine Nicht-Null-Antwort von einem Outbound-Channel-Adapter

Hier ist ein Codebeispiel:

<integration:gateway id="notificationGateway" 
        default-request-channel="notificationRecordsFetcher" 
        default-reply-channel="notifySupplier" 
        service-interface="com.supplier.NotificationGateway"/> 

<!-- Submit the file to the supplier--> 
<integration:channel id="notifySupplier"/> 

<!-- Handle the secured transfer (first) --> 
<integration:outbound-channel-adapter order="1" channel="notifySupplier" id="SupplierSecuredFileTransfer" ref="SubmitToSupplier" method="submit" /> 

<!-- Delete the notification records marked as successful (second) --> 
<integration:outbound-channel-adapter order="2" channel="notifySupplier" id="deleteNotificationRecords" ref="databaseService" method="removeNotificationEntries" /> 

Der Adapter als „SupplierSecuredFileTransfer“ identifiziert nimmt eine Reihe von XML-Dateien, jeweils einen Datenbankeintrag und sende sie SFTP in einen Zielordner verwenden. Anschließend markiert er die erfolgreich übermittelten Datensätze und sendet sie als Antwort an den als "deleteNotificationRecords" identifizierten zweiten Adapter, der seinerseits die Nachrichtennutzdaten liest, die vom ersten aktualisiert wurden, und diese ausführen. Jetzt, da die neue Einschränkung eingeführt wurde, kann ich keine Informationen zwischen den Adaptern weiterleiten. Irgendwelche Ideen, wie Sie das überwinden können?

Antwort

0

Von welcher Version sind Sie migriert?

Ändern Sie den < Outbound-Channel-Adapter /> s auf < Service-Aktivator /> s, ändern Sie den Kanal in den Eingangskanal und setzen Sie den Ausgangskanal auf "nullChannel".

+0

Dachte daran, aber der "SupplierSecuredFileTransfer" Adapter muss die SFTP-Einreichung behandeln, muss also Adapter bleiben (wahrscheinlich der SFTP-Adapter oder Gateway in SI 2.1 eingeführt), und basierend auf dem Ergebnis der Einreichung Datenbank Einträge werden muss entfernt werden. –

+0

Auch ich denke, es ist 1.0 Version von SI wir migrierten aus –