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

我需要分离器作为路线的一部分,你能帮帮我吗?我知道应该选择 ChoiceDefinition 而不是 ExpressionNode,而不是如何修改代码来获得它。

4

2 回答 2

2

请参阅此常见问题解答 - 为什么我不能在 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 回答