2014-04-02 6 views
0

메시지를 3 개의 다른 페이로드로 분할하고 변환하여 3 개의 라우터로 보내야했습니다. 따라서 페이로드에는 처음에 본문이나 세부 정보 및 바닥 글이 헤더에 포함됩니다. 이 3 가지 페이로드를 추출하여 3 개의 다른 라우터에 보내야합니다. 가장 효율적인 방법은 무엇입니까?메시지 분배기

답변

1

신체/페이로드 유형에 따라 다릅니다. 귀하의 페이로드가 XML 인 경우, 당신은 쉽게과 유사한 내용 기반 라우팅을 사용하여 XPath와 경로를 사용하여 분할 할 수 있습니다 :

<splitter expression="#[xpath('//nodes/node)']" /> 
     <choice> 
      <when expression="#[xpath('//node/id').text ='myid']"> 
       <!-- Route somewhere --> 
      </when> 
      <otherwise> 
       <!-- Route somewhere else --> 
      </otherwise> 
     </choice> 

표현 스플리터가 위의 페이로드를 분할 할 수있는 MEL 식을 취할 수 있습니다. 예를 들어 페이로드가 이미 Java Collection 인 경우 콜렉션 스플리터을 사용할 수 있습니다.

다른 스플리터 정보는 여기에서 찾을 수 있습니다 : http://www.mulesoft.org/documentation-3.2/display/32X/Message+Splitting+and+Aggregation

는 또한 포크와 함께 당신을 도울 당신이 비동기 적으로뿐만 아니라 메시지를 처리해야하는 경우 패턴에 참여할 수있는 다른 라우터가 있습니다. 여기에 좋은 게시판이 있습니다 : http://java.dzone.com/articles/aggregation-mule-%E2%80%93-%E2%80%9Cfork-and

+0

이런 종류의 중첩 된 선택은 여전히 ​​최신 버전의 뮬에서 가능합니까? 위와 같은 것을 시도 할 때 스키마 관련 오류가 발생합니다. – GarySharpe

관련 문제