Apache Camel условная маршрутизация
У меня есть служба, которая имеет две операции.
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>
В моем компоненте процессора, когда я указываю:
RegisterUser registerUser = exchange.getIn().getBody(RegisterUser.class);
Я получаю объект регистрации пользователя. Все отлично работает Проблема в том, что я хочу, чтобы верблюд направил мой запрос условно, например:
Если сервисная операцияRegisterUser
Я хочу направить сообщение на мой конкретный компонент, и если операция сервисаUpdateUser
Я хочу направить сообщение другому бину.
Я пытался использовать верблюд 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>
Я искал, как настроить верблюда на путь к различным целям, но ничего не нашел. Может кто знает, в чем может быть проблема?