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

各メッセージを一連のエンドポイントに条件付きでルーティング

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

Talendがサポートしているテクノロジーの詳細は、Talend Mediationコンポーネントを参照してください。

前のシナリオに基づくこのシナリオでは、ファイルシステムからの各メッセージは、含まれる都市名に従って異なるエンドポイントに連続的にルーティングされます。

このユースケースで使うすべてのファイルには、それらに含まれる都市名に基づいて名前が付けられます。以下は、2つの例の抜粋です。

Beijing.xml:

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

Paris.xml:

<person>
  <firstName>Pierre</firstName>
  <lastName>Dupont</lastName>
  <city>Paris</city>
</person>

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

  • 都市名Parisを含むメッセージは、最初にエンドポイントaにルーティングされ、次にエンドポイントbに、最後にエンドポイント cにルーティングされます。

  • 都市名Beijingを含むメッセージは、最初にエンドポイントcにルーティングされ、次にエンドポイントaに、最後にエンドポイント bにルーティングされます。

  • 他のメッセージはエンドポイントbに、次にエンドポイントcにルーティングされます。

JavaBeansの作成と使用については、 Talend Studioユーザーガイドを参照してください。

package beans;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;

public class setEndpoints {
	public String helloExample(Document document) {
		NodeList cities = document.getDocumentElement().getElementsByTagName(
				"city");
		Element city = (Element) cities.item(0);
		String textContent = city.getTextContent();
		if ("Paris".equals(textContent)) {
			return "direct:a,direct:b,direct:c";
		} else if ("Beijing".equals(textContent)) { 
			return "direct:c,direct:a,direct:b";
		} else
			return "direct:b,direct:c";
	}
}

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

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