如果ftp上的文件被锁定,如何引发异常?Spring DSL

如果ftp上的文件被锁定,如何引发异常?Spring DSL,ftp,apache-camel,camel-ftp,Ftp,Apache Camel,Camel Ftp,我的路线是从端点轮询 ftp://localhost:21/folder?username=user&password=password&delay=15s&move=processed&moveFailed=error&sendEmptyMessageWhenIdle=true&passiveMode=true. 若我只是添加readLock=rename,Camel将忽略这个麻烦的文件,并将其保留在文件夹中 如何实现camel行为,以便在尝试后,如果文件仍被某人锁定,camel不会跳过文件,

我的路线是从端点轮询
ftp://localhost:21/folder?username=user&password=password&delay=15s&move=processed&moveFailed=error&sendEmptyMessageWhenIdle=true&passiveMode=true.
若我只是添加
readLock=rename
,Camel将忽略这个麻烦的文件,并将其保留在文件夹中


如何实现camel行为,以便在尝试后,如果文件仍被某人锁定,camel不会跳过文件,而是抛出异常

我想这可以通过实现自定义ReadLockStrategy来实现(接口是
GenericFileExclusiveReadLockStrategy

您可以使用选项
exclusiveReadLockStrategy
(请参阅组件选项)设置自定义策略

另一方面,最好是覆盖开箱即用的策略之一,例如
FileLockExclusiveReadLockStrategy
。然后,您只需重写
acquireExclusiveReadLock()
方法,在其super返回false时抛出异常