Camel脚本无法运行

时间:2016-02-21 19:18:41

标签: apache-camel

我有一个非常简单的驼峰流来测试编写脚本。它看起来像这样:

from("file://C:test?fileName=in.xml").routeId("ContentbasedRouter")
.choice()       
   .when(toXML)
        .script().javaScript("request.body.substring(3, 6)")

但是当我运行这个时,我得到了

org.apache.camel.builder.script.ScriptEvaluationException: Failed to evaluate: js: request.body.substring(3, 6). Cause: <eval>:1 TypeError: GenericFile[C:\test\input.csv] has no such function "substring"

我的意思是substring是一个有效的javascript函数,所以为什么它不识别这个?

1 个答案:

答案 0 :(得分:0)

file个消费者使用GenericFile类型的主体发送交换,而不是String。如果您需要文件名,可以使用方法GenericFile.getFileName()

from("file://C:test?fileName=in.xml").routeId("ContentbasedRouter")
.choice()       
   .when(toXML)
        .script().javaScript("request.body.fileName.substring(3, 6)")

如果您想要文件的内容,可以将其转换为字符串:

from("file://C:test?fileName=in.xml").routeId("ContentbasedRouter")
.convertBodyTo(String.class)
.choice()       
   .when(toXML)
        .script().javaScript("request.body.substring(3, 6)")

请参阅GenericFile