我有一个方法foo()和bar()的接口,我想直接去端点:foo和direct:bar。在代理配置中,您只能进入一个端点,但我没有找到任何方法来获取代码中调用的方法的名称,以便能够根据该名称进行路由。
我在某个地方错过了一些文件吗?
答案 0 :(得分:0)
查看与{toD'相关的http://camel.apache.org/message-endpoint.html信息
答案 1 :(得分:0)
我认为您使用的是Camel版本> 2.15
恢复为不将参数绑定到body的old behaviour,然后您将拥有BeanInvocation对象的accesso,它会告诉您调用了哪个方法。
// Create Proxy
MyAuditService service = new ProxyBuilder(context)
.endpoint("direct:analyzeMethodCall") // dispatcher endpoint
.binding(false) // false: gives you BeanInvocation, true gives you parameter
.build(MyAuditService.class);
然后在从direct:analyzeMethodCall
开始的路由中,使用处理器分析BeanInvocation对象并调用direct:foo
或direct:bar
。您必须明确设置主体。