JdbcOutboundGatewayへのメッセージの送信を、FTPファイル転送が成功した場合にのみ行う方法を教えてください。Spring統合によるFTPファイルアップロード成功メッセージの送信
私は以下のIntegrationFlowを持っています。 FTPサーバーにファイルをアップロードしています。しかし、その後、ファイルが正常にアップロードされたことをDBに書き込むか、FTPアップロードで失敗した場合にレコードを更新する必要があります。私はファイル転送の成功のDB更新を開始する方法を考え出すのに困っています。どこでも私はフローを継続しようとしますが、それは単なる「一方向」であるという例外をスローします。
- ftpPropsは
- ftpSessionFactoryFactoryは値からすべての様々なFtpSessionFactoryオブジェクトを構築し、メッセージがFTPを介して送信することが必要に配置されているチャネルは、様々なFTPセットアップ
- outboundMessagesのためのすべての設定値を含みます :ルータは、ヘッダ値
検査フローを通じてにメッセージを送信するかを決定することをconfigファイルに
@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以外のサンプルがありますか?私はあなたがorderプロパティで示唆していることをする方法を見つけるのが難しいです。表現のアドバイスと同じですが、それを実装する方法を理解するための非xmlサンプルを見つけることができません。 – FiguringThisOut
私は昨日、いくつかの改良点(およびDSLの設定に関するドキュメント)と共に[プルリクエスト](https://github.com/spring-projects/spring-integration/pull/2021)を発行しました。それがマージ(そして解放)されるまでは、チャンネル名ではなく別々の 'channel()' Beanを使う必要があります。注文は消費者に伝わります(アドバイスのように)。 –
偉大な、ありがとう!私は[行408 - 430](https://github.com/spring-projects/spring-integration/commit/3301da4157123264df1e0c7db2d4b3095edd7193#diff-bdb762ced0d512ecaa75eed50d7c64aR394)を見て、それを設定する方法を理解することができた新しく追加された名前メソッドの代わりに)。 – FiguringThisOut