如何在camel exec uri中传递一个+符号

时间:2017-11-06 21:17:48

标签: apache-camel spring-camel

我使用Camel和spring xml。当我尝试通过camel的exec组件调用find时,有一些问题可以使争论正确。

我想拨打' find / somepath / -mtime + 10'

我的骆驼路线有这个元素。

<to uri="exec:find?args=/somepath/ -mtime +30 -delete" />

在日志中我得到了

2017-11-06 20:12:00,172 INFO  [org.apache.camel.component.exec.ExecProducer] (DefaultQuartzScheduler-noderoutes_Worker-10) The command ExecCommand [args=[/tmp/integrator/msglog/, -mtime,  **30**, -print], executable=find, timeout=9223372036854775807, outFile=null, workingDir=null, useStderrOnEmptyStdout=true] had exit value 0

我们可以看到+符号被删除,并且由于缺少+,查找命令将失败。 我尝试了不同的方法来逃避或编码+没有成功。任何人都知道如何保护+号?

2 个答案:

答案 0 :(得分:1)

查看RAW()

<to uri="exec:find?args=RAW(/somepath/ -mtime +30 -delete)" />

答案 1 :(得分:0)

在我尝试了两次转义+并在RAW中包装所有args或只是部分args后,我引入了另一个层。我把调用发现在一个脚本中,只是将路径和天数作为exec的参数。

<button>

我猜在命令行被放到操作系统之前,只有很多层编码/解码正在进行。