2017-11-23 7 views
0

내가 그루비 사용하여 파일을 수정할 :아파치 낙타와 <groovy></groovy>

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]

내가 잘못 뭐하는 거지 :

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

내가 오류가?

+0

수신하는 본문 변수는 getAt 메소드가없는 GenericFile입니다. 너 뭐하려고? – Namphibian

+1

이'body = body [1..3]'로 무엇을하고 싶니? 이 경우 원래의'body'는'GenericFile' 인스턴스이지만 그루비 스크립트'body [1..3]'은 지원되지 않는'IntRange' 인수로'getAt()'메소드를 호출하려고 시도합니다. –

답변

1

예 입력은 파일 기반이며 목록에서 작동하는 그루비 기능을 사용하여 첫 번째 요소에서 세 번째 요소를 가져옵니다. 너는 그렇게 할 수 없다. 파일의 처음 3 줄만 가져 오려면 먼저 메시지를 목록 등으로 변환하거나 분할 자 eip을 사용하여 줄 단위로 파일을 분할 한 다음 목록에서 함께 그룹화해야합니다. 그루브 스크립트를 수행하십시오.