Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
阿帕奇骆驼和<;groovy></groovy>;_Groovy_Apache Camel_Transform - Fatal编程技术网

阿帕奇骆驼和<;groovy></groovy>;

阿帕奇骆驼和<;groovy></groovy>;,groovy,apache-camel,transform,Groovy,Apache Camel,Transform,我想使用groovy修改文件,使用: <from uri="file:/data/inbox?delete=true" /> <transform> <groovy> body = body[1..3] </groovy> </transform> <to uri="file:/data/outbox"/> body=body[1..3] 我得到一个错误: groov

我想使用groovy修改文件,使用:

 <from uri="file:/data/inbox?delete=true" />
    <transform>
    <groovy>
        body =  body[1..3]
    </groovy>
    </transform>
<to uri="file:/data/outbox"/>

body=body[1..3]
我得到一个错误:

groovy.lang.MissingMethodException:没有方法的签名: org.apache.camel.component.file.GenericFile.getAt()适用于 参数类型:(groovy.lang.IntRange)值:[1..3]


我做错了什么?

是的,输入是基于文件的,您试图使用在列表上工作的groovy函数来获取第一到第三个元素。你不能那样做。如果只想获取文件的前3行,则需要首先将消息转换为列表等,或者使用拆分器eip将文件逐行拆分,并将其分组到一个列表中,然后执行groovy脚本

接收的body变量是不包含getAt方法的GenericFile。你想做什么?你想用这个
body=body[1..3]
做什么?在这种情况下,原始的
body
是一个
GenericFile
实例,但是groovy脚本
body[1..3]
尝试使用不受支持的
IntRange
参数调用其
getAt()
方法。