2017-11-23 2 views
0

私が使用してグルーヴィーでファイルを変更したい:Apacheのラクダと<groovy></groovy>

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

私はエラーを取得する:

groovy.lang.MissingMethodException: No signature of method: org.apache.camel.component.file.GenericFile.getAt() is applicable for argument types: (groovy.lang.IntRange) values: [1..3]

は私が間違って何をしているのですか?

+0

受け取るbody変数は、getAtメソッドを含まないGenericFileです。あなたは何をしようとしているのですか? – Namphibian

+1

この 'body = body [1..3]'で何をしたいですか?この場合、元の 'body'は' GenericFile'インスタンスですが、groovyスクリプト 'body [1..3]'はサポートされていない 'IntRange'引数で' getAt() 'メソッドを呼び出そうとします。 –

答えて

1

はい入力はファイルベースであり、リスト上で動作するgroovy関数を使用して1番目から3番目の要素を取得しようとします。それをしてはいけない。ファイルの最初の3行だけを取得する場合は、最初にメッセージをリストなどに変換するか、スプリッタeipを使用してファイルを1行ずつ分割し、それらをリストにまとめる必要があります後でgroovyスクリプトを実行します

関連する問題