Spring Integration:从出站通道适配器返回非空回复

时间:2012-04-09 14:29:01

标签: spring-integration

我有一个带有2个出站通道适配器的通道,它们都返回一个包含其活动结果的Message对象。 这曾经有效,直到升级到SI 2.1。现在,由于方法返回非空值,我收到错误消息。

以下是代码示例:

<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" />

标识为“SupplierSecuredFileTransfer”的适配器接收一堆XML文件,每个文件代表一个数据库记录,并使用SFTP将它们发送到目标文件夹。然后它标记成功传递的记录,并将它们作为回复发送到标识为“deleteNotificationRecords”的第二个适配器,后者又读取由第一个更新的消息有效负载并对其执行。 现在,由于引入了新的限制,我无法在适配器之间传递信息。 任何想法如何克服这个?

1 个答案:

答案 0 :(得分:0)

您从哪个版本迁移?

将&lt; outbound-channel-adapter /&gt;更改为&lt; service-activator /&gt; s,将频道更改为输入频道,并将output-channel设置为“nullChannel”。