Grails ApacheCamel:动态路由器在一个请求中多次调用同一端点

Grails ApacheCamel:动态路由器在一个请求中多次调用同一端点,grails,apache-camel,Grails,Apache Camel,我在接收器路由器中配置了动态路由器,如下所示, dynamicRouter(方法(“com.eg.dynamicComingRoute”),“getIncomingRoute”)) 但是它多次将请求重定向到同一个bean和同一个方法 在日志中显示如下: 消息历史记录 RouteId ProcessorId处理器已用时间(毫秒) [路线3][路线3][mina2://tcp://localhost:8888?codec=%23hl7codec&sync=true

我在接收器路由器中配置了动态路由器,如下所示, dynamicRouter(方法(“com.eg.dynamicComingRoute”),“getIncomingRoute”))

但是它多次将请求重定向到同一个bean和同一个方法

在日志中显示如下:

消息历史记录 RouteId ProcessorId处理器已用时间(毫秒)

[路线3][路线3][mina2://tcp://localhost:8888?codec=%23hl7codec&sync=true ][29642]

[route3][dynamicroutter1][dynamicroutter[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重复多次。这意味着它将多次重定向到同一方法。相反,我想将响应发送回用户。那么我该如何做呢?

阅读文档

看到那一页上的注意框了吗


与此相关的还有一些细节:

在使用这些行更新公共类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}”;}else{return null;}}}