是否可以使用多个方法代理一个接口,这些方法可以转到不同的端点



我有一个方法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:foodirect:bar 。必须显式设置正文。

相关内容

最新更新