Apache camel 使用exec进行Apache camel多文件处理

Apache camel 使用exec进行Apache camel多文件处理,apache-camel,Apache Camel,我很难修复这个简单的路由,在执行后立即得到异常。似乎execute正在充当生产者并重写文件 例外情况: org.apache.camel.component.file.GenericFileOperationFailedException:无法存储文件:C:\camel\u tests\stage\Downloads.rar 路线: 主目录将有一个带有图像的rar文件,该文件应使用winrar.exe提取,rar中的每个文件都经过处理,并在完成此路由后最终移动到arch目录。最后一个成功的阶段是

我很难修复这个简单的路由,在执行后立即得到异常。似乎execute正在充当生产者并重写文件

例外情况:

org.apache.camel.component.file.GenericFileOperationFailedException:无法存储文件:C:\camel\u tests\stage\Downloads.rar

路线:

主目录将有一个带有图像的rar文件,该文件应使用winrar.exe提取,rar中的每个文件都经过处理,并在完成此路由后最终移动到arch目录。最后一个成功的阶段是提取阶段目录中的文件

这里
CMD\u EXPLODE
=
“\”C:/Program Files/WinRAR/WinRAR.exe\”


你应该把它分成两条路线。第一个执行from->exec的 第二个从->过程->到


然后,第二个将处理从winrar提取的每个文件。

您应该将其拆分为两条路由。第一个执行from->exec的 第二个从->过程->到


然后,第二个将处理从winrar提取的每个文件。

谢谢,当我将它们分成三部分时,它就工作了。但我想传递相关id(stage1到stage3)和一些其他头细节,以便在最后使用聚合器进行组合/处理。所以,当我用“direct”或“seda”连接它们时,会得到和以前一样的异常。谢谢,当我将它们分成三部分时,它就工作了。但我想传递相关id(stage1到stage3)和一些其他头细节,以便在最后使用聚合器进行组合/处理。所以,当我使用“direct”或“seda”连接它们时,会得到与以前相同的异常。
from("file://C:/camel_tests/home?fileName=Downloads.rar&preMove=//C:/camel_tests/stage")
.to("exec:"+Consts.CMD_EXPLODE+"?args=e Downloads.rar&workingDir=C:/camel_tests/stage&outFile=decompress_output.txt")
.to("file://C:/camel_tests/stage?exclude=.*.rar")
.process(new PrintFiles())
.to("file://C:/camel_tests/stage?fileName=Downloads.rar&move=//C:/camel_tests/arch").end();