我们正在使用sftp通道适配器将文件发送到sftp服务器。有没有办法确认文件是否已发送? 我们面临的是有时我们的服务器和sftp服务器之间的连接断开,我们想知道并重试文件传输是否成功。
答案 0 :(得分:1)
实际上FileTransferringMessageHandler
中的所有内容都是按顺序完成的。
所以,我确定您正面临着日志中的一个例外:
catch (FileNotFoundException e) {
throw new MessageDeliveryException(message, "File [" + inputStreamHolder.getName()
+ "] not found in local working directory; it was moved or deleted unexpectedly.", e);
}
catch (IOException e) {
throw new MessageDeliveryException(message, "Failed to transfer file ["
+ inputStreamHolder.getName() + " -> " + fileName
+ "] from local directory to remote directory.", e);
}
catch (Exception e) {
throw new MessageDeliveryException(message, "Error handling message for file ["
+ inputStreamHolder.getName() + " -> " + fileName + "]", e);
}
<int-sftp:outbound-channel-adapter>
支持<request-handler-advice-chain>
,其中一个可以<retry-advice>
(或MessageHandlerRetryAdvice
bean引用)以满足您的要求。
请在Reference Manual找到更多信息。