【发布时间】:2015-10-24 23:59:50
【问题描述】:
我想创建一个骆驼路线来使用看起来很简单的骆驼执行组件执行 gzip 命令。但是,我需要在不修改原始文件的情况下压缩输入文件,并且应该将压缩文件移动到另一个输出目录。
我google了一下,发现可以通过linux中的以下命令之一来实现:
gzip -c test_input_file.dat > /home/prem/myappdir/output/test_output.gz
或
gzip < test_input_file.dat > /home/prem/myappdir/output/test_output.gz
或
cat test_input_file.dat | gzip /home/prem/myappdir/output/test_output.gz
或
gzip -c test_input_file.dat | cat > /home/prem/myappdir/output/test_output.gz
以上所有命令在 linux 终端中都可以正常工作。当我在骆驼路线中使用这些命令时,它们都不起作用。
我使用“gzip”作为命令,其余内容作为命令参数传递给骆驼路线中的 Exec 组件。
我执行 gzip 任务的骆驼路线是:
<!-- route to demonstrate camel-exec -->
<route id="camelExecDemo">
<from uri="timer://kickoff?repeatCount=1"/>
<to uri="exec:gzip?args=-c /home/prem/Documents/input/test_input_file.dat > /home/prem/myappdir/output/test_output.gz&useStderrOnEmptyStdout=true"/>
<log message="${body}"/>
</route>
请有人帮忙!我被这个问题困住了。
注意:只有一个输入文件作为参数的简单 gzip 命令在我的路由中运行良好。但是,我需要按照上面提到的那样去做。
系统详情:
Linux:RHEL(或 Linux Mint 17)
骆驼版:2.11.0
【问题讨论】:
标签: java linux spring apache-camel