У меня есть служба, которая имеет две операции.Условная маршрутизация 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>
Я искал, как настроить верблюда на маршрут к различным объектам, но ничего не нашел. Может, кто-нибудь знает, где может быть проблема?
Это отлично работает для меня. Именно то, что мне нужно. Спасибо! :) –