0
如何僅在成功的FTP文件傳輸時觸發將消息發送到JdbcOutboundGateway?通過彈簧集成發送成功的FTP文件上傳消息
我有下面的IntegrationFlow。它可以根據需要上傳文件到FTP服務器。但是,我需要向DB寫入文件已成功上傳,或者如果FTP上載失敗,則更新記錄。我無法確定如何在文件傳輸成功時啓動數據庫更新。無論我在哪裏嘗試繼續流程,它都會拋出一個異常,指出它是「單向」的。
- ftpProps包含所有用於各種FTP設置
- outboundMessages的配置值是消息被放置到需要經由FTP要發送的信道
- ftpSessionFactoryFactory構建出從值的所有的各種FtpSessionFactory對象在配置文件中,所述路由器將隨後確定發送消息通過檢查報頭值
流其中之一:
@Bean
public IntegrationFlow fromOutboundChannelToFtp(OutboundConfigurationProperties ftpProps,
@Qualifier(OUTBOUND_CHANNEL) MessageChannel outboundMessages,
@Qualifier(FTP_SESSION_FACTORY_FACTORY) FtpSessionFactoryFactory ftpSessionFactoryFactory) {
return IntegrationFlows.from(outboundMessages)
.route(RECEIVER_HEADER_SPEL, mapping -> {
for (String receiverId : ftpProps.getFtp().keySet()) {
mapping.subFlowMapping(receiverId, sf -> {
sf.handleWithAdapter(adapter ->
adapter.ftp(ftpSessionFactoryFactory.getFactory(receiverId))
.fileNameExpression(FILENAME_HEADER_SPEL)
.autoCreateDirectory(true)
.remoteDirectory(ftpProps.getValue(receiverId, FtpProp.DIRECTORY))
);
});
}
})
.get();
}
是否有任何非xml示例可供參考?我很難找到如何做你正在與訂單屬性建議。與表達式建議一樣,無法找到任何非xml示例來了解如何實現它。 – FiguringThisOut
昨天我發佈了一個[Pull Request](https://github.com/spring-projects/spring-integration/pull/2021),並進行了一些改進(以及有關DSL配置的文檔)。在合併(並釋放)之前,您必須使用不同的'channel()'bean而不是通道名稱。訂單發送給消費者(如建議)。 –
太好了,謝謝!我能夠弄清楚如何通過查看[行408-430](https://github.com/spring-projects/spring-integration/commit/3301da4157123264df1e0c7db2d4b3095edd7193#diff-bdb762ced0d512ecaa75eed504d7c64aR394)並通過頻道(而不是新添加的名稱方法)。 – FiguringThisOut