我需要实现一个响应ZipException
的处理程序来移走损坏的gz文件,否则该路由将无休止地重试解组gz。
问题是,在抛出异常的那一刻,这个文件有一个锁(在linux canWrite()
上返回false
)并且有Camel锁文件。
是否有一种优雅的Camel方式来说/配置锁定被释放的onException
(获取写入权限并删除锁定文件 - 如果有的话)?
目前我的代码看起来像这样:
onException(ZipException.class)
.handled(true)
.process(corruptedFileProcessor)
.stop();
提前致谢。
答案 0 :(得分:2)
以下路由从srcDir读取gzip文件,将解压缩的文件写入destDir(不带.gz扩展名),当发生ZipException时,将文件发送到errorDir。
from("file://srcDir/?delete=true")
.onException(ZipException.class)
.handled(true).useOriginalMessage()
.to("file://errorDir?autoCreate=true")
.end()
.unmarshal().gzip()
.to("file://destDir?autoCreate=true&fileName=${file:name.noext}");