Camel splitter返回ExpressionNode

时间:2012-12-14 13:00:46

标签: java apache-camel dsl

我有路线:

    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

我需要拆分器作为路线的一部分,你能帮助我吗?我明白应该选择ChoiceDefinition而不是ExpressionNode,而不是如何修改代码才能得到它。

2 个答案:

答案 0 :(得分:2)

请参阅此常见问题解答 - 为什么我不能在Java Camel路由中使用/何时使用? http://camel.apache.org/why-can-i-not-use-when-or-otherwise-in-a-java-camel-route.html

答案 1 :(得分: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();