Tengo un servicio que tiene dos operaciones.Enrutamiento condicional Apache Camel
RegisterUser
UpdateUser
que tienen una derrota camello:
<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>
En mi grano de procesador, cuando especifico:
RegisterUser registerUser = exchange.getIn().getBody(RegisterUser.class);
recibo el objeto de usuario de registro. Todo funciona bien El problema es que quiero camello para encaminar mi petición condicional, por ejemplo:
Si la operación de servicio es RegisterUser
quiero encaminar el mensaje a mi frijol específica y si la operación del servicio es UpdateUser
Quiero encaminar el mensaje al otro frijol
He intentado utilizar camel xPath, pero parece que no funciona.
<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>
Estaba buscando cómo configurar el camello para encaminarme a los diferentes objetivos pero no encontré nada. ¿Tal vez alguien sabe dónde podría estar el problema?
Esto funciona muy bien para mí. Exactamente lo que necesitaba. ¡Gracias! :) –