Grails ApacheCamel:动态路由器在一个请求中多次调用同一端点
我在接收器路由器中配置了动态路由器,如下所示, 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]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
您可以观察到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;}}}