我一直在使用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);}
以下是我最初将消息发送到Start endpoint(我正在使用ActiveMq)的方式
template.sendBodyAndHeader("activemq:queue:HasReported",event,"MySlip","activemq:DarkDevice,activemq:HasAnomalies");
但是当我运行程序时,似乎消息被递归地发送到“DarkDevice”和“HasReported”activemq端点。我期待的是它应该只向特定端点发送一次消息。