Apache camel Apache Camel RoutingSlip递归地将消息发送到相同的端点

Apache camel Apache Camel RoutingSlip递归地将消息发送到相同的端点,apache-camel,activemq,Apache Camel,Activemq,我一直在使用RouteingSlip将消息发送到特定于特定消息的不同端点。以下是我如何在RouteBuilder中定义RoutingSlip for (TransitionTarget state : children.values()) { List<Transition> transitions = state.getTransitionsList(); RouteDefinition routeDefinitio

我一直在使用RouteingSlip将消息发送到特定于特定消息的不同端点。以下是我如何在RouteBuilder中定义RoutingSlip

 for (TransitionTarget state : children.values()) {
                List<Transition> transitions = state.getTransitionsList();
                RouteDefinition routeDefinition = from("activemq:queue:" + state.getId() + "?asyncConsumer=true").to("bean:" + state.getId() + "?method=process");
                RoutingSlipDefinition<RouteDefinition> routingSlipDef = routeDefinition.routingSlip(header("MySlip"));
                routingSlipDef.setIgnoreInvalidEndpoints(true);}

但当我运行该程序时,消息似乎会递归地发送到“DarkDevice”和“HasReported”activemq端点。我所期望的是,它应该只向特定端点发送一次消息

我认为你需要提供更多的信息。你的豆子有什么特别的吗?你在记录吗?检查日志?一个简单的测试:context.addRoutes(new RouteBuilder(){@Override public void configure()抛出异常{from(“direct:in”).routingSlip(header(“dest”);from(“direct:A”).routeId(“A”).log(${body}”);from(“direct:b”).routeId(“b”).log(${body}); template.sendboyandheader(“direct:in”、“myBody”、“dest”、“direct:a、direct:b”);《睡眠》(2000年);works Fine我弄明白了为什么它会递归地将消息发送到那些端点,因为在每个路由中,它会将消息并行地发送到两个端点(activemq:DarkDevice,activemq:HasExceptions),这应该是顺序的。我想按顺序发送消息以及发送到的消息,比如说DarkDevice activemq,DarkDevice的相关路由应该从RoutingSlip中省略activemq:DarkDevice。
template.sendBodyAndHeader("activemq:queue:HasReported",event,"MySlip","activemq:DarkDevice,activemq:HasAnomalies");