2

私はルートを持っています:

    from(SU_NAME)
        .choice()
            .when(STATUS_IS_OK)
                .to("xslt:xsl/RemoveNode.xsl")
                    .split().tokenizeXML("Event", "Header").to(XP_NAME)
            .otherwise()
                .dynamicRouter(method(router, "slip"))
    .end(); 

スプリッターを削除すると、すべてが正常に機能しますが、ルートにあると次のようになります。

java.lang.Error: Unresolved compilation problem: 
The method otherwise() is undefined for the type ExpressionNode

スプリッターをルートの一部にする必要があります。助けてもらえますか。これを取得するためにコードを変更する方法ではなく、ExpressionNode ではなく ChoiceDefinition を選択する必要があることを理解しています。

4

2 に答える 2

2

この FAQ を参照してください - Java Camel ルートで when/otherwise を使用できないのはなぜですか? http://camel.apache.org/why-can-i-not-use-when-or-otherwise-in-a-java-camel-route.html

于 2012-12-14T13:16:47.830 に答える
0

一見すると、あなたの「分割」は終了していないように見えます。これを試して:

from(SU_NAME)
    .choice()
        .when(STATUS_IS_OK)
            .to("xslt:xsl/RemoveNode.xsl")
            .split().tokenizeXML("Event", "Header")
                .to(XP_NAME)
            .end() /* <-- explicitly end the split here, that should help */
        .otherwise()
            .dynamicRouter(method(router, "slip"))
     .end(); 
于 2012-12-14T20:39:38.990 に答える