【问题标题】:apache camel: Dynamic router is calling the same end point for multiple times in a single requestapache camel:动态路由器在一个请求中多次调用同一个端点
【发布时间】: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


【解决方案1】:

阅读文档!

查看该页面上的提防框

与此相关的还有一些细节:Dynamic routing in camel en-queues messages infinitely

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 2018-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-17
    相关资源
    最近更新 更多