我有java界面:
public interface IMyService
{
String method1(Document document) throws Exception;
String method2(Document document) throws Exception;
}
我将它用作骆驼代理:
<camel:proxy id="myService"
serviceInterface="pl.package.service.IMyService"
serviceUrl="direct:myService"/>
在这条路线中:
<route id="myRoute" autoStartup="true">
<from uri="direct:myService"/>
<process ref="postProcessor"/>
<camel:to uri="apiEndpoint"/>
<camel:process ref="responseProcessor"/>
</route>
现在,如何通过IMyService方法选择不同的端点?例如:
<route id="myRoute" autoStartup="true">
<from uri="direct:myService"/>
<process ref="postProcessor"/>
if method == method1
{
<camel:to uri="apiEndpoint"/>
}
else
{
<camel:to uri="otherApiEndpoint"/>
}
<camel:process ref="responseProcessor"/>
</route>
答案 0 :(得分:0)
驼峰代理实际上只是一种java bean的一种方式,它调用一个实现,结果证明它是骆驼,让它看起来很干净,而不是非常混乱。您可能希望让它调用发送消息正文的路由,指示您需要的操作,然后使用选项。
from("direct:start")
.choice()
.when(body().isEqualTo("method1"))
.to("my processing work")
.when(body().isEqualTo("method2"))
.to("my other processing work")
.otherwise()
.to("well no proper method was called");