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

时间:2017-10-25 21:27:03

标签: proxy apache-camel

我有一个方法foo()和bar()的接口,我想直接去端点:foo和direct:bar。在代理配置中,您只能进入一个端点,但我没有找到任何方法来获取代码中调用的方法的名称,以便能够根据该名称进行路由。

我在某个地方错过了一些文件吗?

2 个答案:

答案 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:foodirect:bar。您必须明确设置主体。