我有一个方法foo()和bar()的接口,我想去端点 direct:foo 和 direct:bar。 在代理配置中,您只允许输入一个端点,我还没有找到任何方法来获取代码中调用的方法的名称,以便能够基于该名称进行路由。
我在某处丢失了一些文件吗?
查看与"toD"相关的 http://camel.apache.org/message-endpoint.html 信息
我认为您使用的是 Camel> 2.15 版本
恢复到不将参数绑定到主体的旧行为,然后您将可以访问 BeanInvocation 对象,该对象将告诉您调用了哪个方法。
// 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
。必须显式设置正文。