1

Java で定義された Apache Camel ルートがあれば、次のようなことができます。

from("stream:in?promptMessage=Enter something: ")
  .loadBalance()
  .to("uria", "urib")

そしてそれは魅力のように機能します。

Spring コンテキスト ファイルを使用してこれを試してもうまくいきません。

<c:camelContext id="defaultContext">
  <c:route id="defaultRoute">
    <c:from uri="stream:in?promptMessage=Enter something: "/>
    <c:loadBalance inheritErrorHandler="false">
      <c:to uri="uria, urib"/>
    </c:loadBalance>
    <c:to uri="stream:out"/>
  </c:route>
</c:camelContext>

<c:to ...要素ごとに複数の uri を設定するにはどうすればよいですか? <c:to ...複数の要素を持ちたくありません。リストを渡すルートファクトリなど、方法はありますか?

これを達成したい原因は何ですか: 構成ファイルから URI のリストを挿入して、それらを Camel ルートに直接渡したいと考えています。

Apache Camel のバージョン 2.12.1 を使用しています。

4

1 に答える 1

1
  1. RouteBuilder クラスを使用して、どこかから URI を読み取るルートを作成します。
  2. contextScan を使用して、ルート ビルダー クラスを Spring Camel コンテキストにロードします。セクションApacheのサイトの Using contextScanを参照してください。

RouteBuilder クラスは、

@Component
public class MyRoute extends SpringRouteBuilder {

    @Override
    public void configure() throws Exception {
        String URIs = // read all URI's from file or somewhere
        from("direct:start")
           .loadbalance()
           .to(URIs);
    }
}
于 2013-10-18T14:10:15.220 に答える