2011-09-24 4 views
2

다른 정보 (생각한 주소, 고객 세부 정보 등) 외에도 여러 개의 동질성 노드 (제품 목록 생각)가 포함 된 XML (주문) 메시지가 있습니다. 나는 각각의 '제품'을 다른 외부 서비스가 제공하는 세부 사항으로 보완하고 풍성한 '제품'과 동일한 완전한 XML '주문'메시지를 반환해야합니다.나누기, 풍성하게하기 및 다시 함께하기

  1. 분할
  2. 풍부하게 추가 데이터
  3. 넣어 농축 부분과 메시지를 분할 (또한 원본 메시지를 유지) 메시지를 분리하는 XPath는 원래 XML :

    나는 단계의 순서를 내놓았다 이전 요소를 대체하여 원래 메시지로 되돌립니다.

원래 메시지를 분할 및 풍부화가 수행되는 끝점으로 보내고 원본 메시지 및 분할 강화 메시지가 집계 된 다음 해당 부분을 결합하는 프로세서로 전달되는 집합 끝점으로 멀티 캐스트를 사용하려고했습니다. 단일 XML 파일로 돌아갑니다. 하지만 원하는 효과를 얻을 수 없었습니다 ...

이 문제를 해결하기위한 올바른 방법은 무엇입니까?

+0

왜 별도의 메시지로 메시지를 분할해야합니까 이러한 사용 사례를 보여줍니다이 비디오를 참조하십시오? 분산/수집 방식을 사용하지 않고 원래 메시지를 단계적으로 풍부하게 만들 수 있습니까? –

답변

5

Camel의 스플리터 EIP는 메시지를 다시 수집 할 수 있습니다 (Composed Message Processor EIP). http://camel.apache.org/splitter

http://davsclaus.blogspot.com/2011/09/video-using-splitter-eip-and-aggregate.html

+0

집계를 사용하지만 집계 지점에서 원래 메시지가 필요합니다. 이것은 우리가 문제가되는 곳입니다. –

+3

원래 메시지를 교환기의 속성으로 저장 한 다음 AggregationStrategy에서 가져올 수 있습니다. –