2

そのメッセージで指定された操作によってServiceMixメッセージをルーティングする方法はありますか?

グーグルで調べてみましたが、この単純なタスクを完了する方法を見つけることができませんでした。そもそも間違っているのでしょうか?

2 種類のメッセージをディスパッチするアダプターがあります。他の 2 つのアダプターは、それらをキャッチして応答する必要があります。両方のメッセージの本文は同じですが (たとえば let it be some <product>...</product>)、操作は異なります (たとえばupdateand create)。そのメッセージを別のアダプターにルーティングするにはどうすればよいですか?

前もって感謝します。

4

2 に答える 2

0

Camel XPath 述語 (http://camel.apache.org/xpath.html) を使用します。例えば:

from("queue:products").  
choice().xpath("/product/[@create='true']")).to("queue:create").
otherwise().to("queue:update");
于 2011-04-18T12:10:18.233 に答える
0

ここで答えを見つけました:http://fernandoribeiro.eti.br/2009/06/06/multiple-operations-in-apache-camel-routes/

import org.apache.camel.builder.RouteBuilder;

public final class SampleRouteBuilder extends RouteBuilder {
    public void configure() {
        from("jbi:service:http://www.fernandoribeiro.eti.br/SampleService")
            .choice()
                .when(header("jbi.operation")
                    .isEqualTo("{http://www.fernandoribeiro.eti.br}FirstOperation"))
                .when(header("jbi.operation")
                    .isEqualTo("{http://www.fernandoribeiro.eti.br}SecondOperation"));
    }
}
于 2011-04-19T06:38:22.300 に答える