入站sftp通道适配器自定义过滤器不再接受同一文件

时间:2015-04-28 12:24:08

标签: spring-integration

我有一个非常简单的自定义过滤器用于入站sftp通道适配器,我只是检查文件扩展名是否在接受列表中。如果是,则返回true,并允许处理该文件。

正在发生的事情是第一次处理文件它工作正常。如果在我的sftp服务器中删除了相同的文件,它将进入过滤器并且它返回true表示文件被接受仍然不会将该消息放在下游队列中。这是我的示例配置看起来像



<int-sftp:inbound-channel-adapter id="sftpAdapter"
			channel="ftpChannel"
			session-factory="sftpSessionFactory"
			local-directory="c:\\temp"
			remote-directory="//test//inbound"
			remote-file-separator="/"
			auto-create-local-directory="true"
			delete-remote-files="true"

			filter="customfilter"
			preserve-timestamp="true"
			>
		
		<int:poller cron="0/5 * * * * *" max-messages-per-poll="1"/>
	</int-sftp:inbound-channel-adapter>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

那是因为FileListFilter中还有一个AbstractInboundFileSynchronizingMessageSource

private volatile FileListFilter<File> localFileListFilter = new AcceptOnceFileListFilter<File>();

由于您保证duplicate的{​​{1}}逻辑,您应配置filter="customfilter"

local-filter