apache-camel - 仅在调用直接组件时执行路由
问题描述
每当调用“直接”路由时,我都想解压缩文件。我从其他一些直接路线获得的文件名。
from("direct:unZipFile")
.from("file:C:\\MYFILES\\File\\Unzipped\\?fileName=${header.fileName}&idempotent=true")
.split(new ZipSplitter())
.streaming()
.to("file:C:\\MYFILES\\File\\Unzipped\\")
.split(body().convertToString().tokenize("\n"))
.transform()
.simple("${in.body}")
.end();
现在当我调用直接组件时它正在工作,但它也会继续扫描目录并处理相同的文件。我知道上面的代码允许从直接组件和文件组件触发,但我只希望它从“直接”组件执行,我不能删除“文件”组件,因为只有我正在读取文件。
解决方案
You can also try to use pollenrich
from("direct:unZipFile")
.pollEnrich.simple("file:C:\\MYFILES\\File\\Unzipped\\?fileName=${header.fileName}")
.split(new ZipSplitter())
.streaming()
...