2011-10-05 3 views
0

Apache Camel을 사용하여 두 시스템간에 데이터를 통합하려고합니다. 결과 XML을 XML 파일에 쓰길 원합니다. 통합 체인이 시작될 때 알 수없는 일부 데이터에 해당 파일의 이름을 지정하려고합니다.Exchange.In : Camel의 ProcessDefinition에서 BODY 개체를 가져 오는 방법

첫 번째 풍부한 단계를 완료하면 필요한 데이터가 Exchange 개체에 있습니다.

문제는 출력 파일에 바람직한 파일 이름을 생성하기 위해 프로세스 체인 외부에서 exchange.getIn(). getBody() 메소드의 데이터를 가져올 수 있고 마지막 단계로 xml을 작성하는 것입니다. 이 파일에? 아니면 이것을 수행 할 다른 방법이 있습니까?

from("test_main", "jetty:server")
.process(new PiProgramCommonProcessor())
.enrich("piProgrammeEnricher", new PiProgrammeEnricher())
// after this step I have the data available in exchange.in.body .to(freeMarkerXMLGenerator)
.to(xmlFileDestination) .end();

안부 RythmiC

답변

1

(있는 경우) 파일 컴포넌트는 헤더로부터 파일명을 취

여기 표시된 내 routebuilders 구성 방법의 현재 프로세스 체인이다. 원하는 파일 이름으로 메시지에 헤더를 추가하기 만하면됩니다.

헤더는 Exchange.FILE_NAME에서 정의 된 키 "CamelFileName"을 사용해야합니다. 나는 일이 입수 한 http://camel.apache.org/file2

+0

좋아 :

은에서 자세한 내용을 참조하십시오. 이제 Exchange.in.body 객체에있는 어떤 값을 기반으로 이름을 붙이는 문제에 – Rythmic

+0

프로세서를 사용하여 헤더를 계산하고 설정할 수 있습니다. http://camel.apache.org/processor –

관련 문제