我有一个有两个操作的服务。
RegisterUser
UpdateUser
我有骆驼溃败:
<camel:route id="myRoute">
<camel:from uri="cxf:bean:myListenerEndpoint?dataFormat=POJO&synchronous=true" />
<camel:bean ref="processor" method="processMessage"/>
<camel:to uri="xslt:file:resources/service/2.0.0/UserRegistration.xsl"/>
<camel:to uri="cxf:bean:myTargetEndpoint"/>
</camel:route>
在我的处理器 bean 中,当我指定时:
RegisterUser registerUser = exchange.getIn().getBody(RegisterUser.class);
我得到了注册用户对象。一切正常。问题是我希望骆驼有条件地路由我的请求,例如:
如果服务操作是RegisterUser
我想将消息路由到我的特定 bean,如果服务操作是UpdateUser
我想将消息路由到另一个 bean。
我曾尝试使用骆驼 xPath,但它似乎不起作用。
<camel:route id="myRoute">
<camel:from uri="cxf:bean:myListenerEndpoint?dataFormat=POJO&synchronous=true" />
<camel:choice>
<camel:when>
<camel:xpath>
//RegisterUser
</camel:xpath>
<camel:bean ref="processor" method="processMessage"/>
<camel:to uri="xslt:file:resources/service/2.0.0/UserRegistration.xsl"/>
</camel:when>
</camel:choice>
<camel:to uri="cxf:bean:myTargetEndpoint"/>
</camel:route>
我正在寻找如何设置骆驼以路由到不同的目标,但没有找到任何东西。也许有人知道问题出在哪里?