Apache Camel condicional de enrutamiento
Tengo un servicio que tiene dos operaciones.
RegisterUser
UpdateUser
Tengo una derrota de 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 bean de procesador, cuando especifique:
RegisterUser registerUser = exchange.getIn().getBody(RegisterUser.class);
Obtengo el objeto de registro de usuario. Todo funciona bien. El problema es que quiero que el camello direccione mi solicitud condicionalmente, por ejemplo:
Si la operación de servicio esRegisterUser
Quiero enrutar el mensaje a mi bean específico y si la operación de servicio esUpdateUser
Quiero enrutar el mensaje al otro bean.
He intentado usar 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 la forma de configurar el camello para enrutar a los diferentes objetivos, pero no encontré nada. Tal vez alguien sabe dónde podría estar el problema?