メイン コンテンツをスキップする

条件付きで異なるファイルパスにファイルをルーティングする

このシナリオは、Talend ESBTalend Data Services PlatformTalend MDM PlatformTalend Real-Time Big Data PlatformTalend Data Fabricにのみ適用されます。

このシナリオでは、人物情報を含む3つのファイルメッセージが、含まれている都市名に従って異なるエンドポイントにルーティングされます。

以下は、このユースケースで使われるXMLファイルの例です。

Message_1.xml:

<person>
  <firstName>Ellen</firstName>
  <lastName>Ripley</lastName>
  <city>Washington</city>
</person>

Message_2.xml:

<person>
  <firstName>Peter</firstName>
  <lastName>Green</lastName>
  <city>London</city>
</person>

Message_3.xml:

<person>
  <firstName>Alice</firstName>
  <lastName>Yang</lastName>
  <city>Beijing</city>
</person>

このユースケースでは、事前定義されたJavaBean、setDynaURIが呼び出され、各メッセージに含まれる都市名に従ってエンドポイントURIを返すため、たとえば都市名Washingtonを含むメッセージはエンドポイントWashingtonにルーティングされます。

JavaBeansの作成と使用については、Beansを使用をご覧ください。

package beans;

import org.apache.camel.Exchange;
import org.apache.camel.Header;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;

public class setDynaURI {

 public String setURI(Document document,
      @Header(Exchange.SLIP_ENDPOINT) String previous) {
    if(previous!=null){
     return null;
    }
  NodeList cities = document.getDocumentElement().getElementsByTagName(
    "city");
  Element city = (Element) cities.item(0);
  String textContent = city.getTextContent();
   return "direct:"+textContent;
  } 
}

このページは役に立ちましたか?

このページまたはコンテンツにタイポ、ステップの省略、技術的エラーなどの問題が見つかった場合はお知らせください。