Ho un servizio che ha due operazioni.Routing condizionale Apache Camel
RegisterUser
UpdateUser
Ho una rotta cammello:
<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>
Nel mio fagioli processore, quando ho specificare:
RegisterUser registerUser = exchange.getIn().getBody(RegisterUser.class);
ottengo l'oggetto utente registro. Tutto funziona bene Il problema è che voglio cammello percorso la mia richiesta a condizioni ovvero ad esempio:
Se l'operazione di servizio è RegisterUser
voglio instradare il messaggio al mio fagioli specifica e se l'operazione di servizio è UpdateUser
voglio instradare il messaggio all'altro fagiolo.
Ho provato a utilizzare cammello xPath, ma non sembra funzionare.
<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>
Stavo cercando come impostare il cammello per il percorso verso i diversi obiettivi ma non ha trovato nulla. Forse qualcuno sa dove potrebbe essere il problema?
Questo funziona perfettamente per me. Esattamente quello di cui avevo bisogno. Grazie! :) –