【发布时间】:2014-08-13 16:07:16
【问题描述】:
我已经在接收路由器中配置了动态路由器,如下所示, dynamicRouter(method("com.eg.DynamicIncomingRoute"), "getIncomingRoute"))
但它多次将请求重定向到同一个bean和同一个方法。
在日志中是这样显示的,
消息历史记录
RouteId ProcessorId 处理器经过(毫秒)
[route3] [route3] [mina2://tcp://localhost:8888?codec=%23hl7codec&sync=true] [29642]
[route3] [dynamicRouter1] [dynamicRouter[bean{com.eg.service.handlerService, ] [29632]
[route1] [to1] [bean:handlerService?method=handleMessage] [11835]
[route1] [to1] [bean:handlerService?method=handleMessage] [12776]
[route1] [to1] [bean:handlerService?method=handleMessage] [4700]
您可以观察到 route1 重复了多次。意味着它多次重定向到相同的方法。相反,我想将响应发送回用户。那我该怎么做呢?
【问题讨论】:
-
用这些行更新后为我工作 public class DynamicRouterBean { public String route(String body, @Header(Exchange.SLIP_ENDPOINT) String previous) { return whereToGo(body, previous); } private String whereToGo(String body, String previous) { if (previous == null) { return "mock://a"; } else if ("mock://a".equals(previous)) { return "language://simple:Bye ${body}"; } 否则 { 返回空值; } } }
标签: grails apache-camel