Apache Camel routage conditionnel
J'ai un service qui a deux opérations.
RegisterUser
UpdateUser
J'ai un chameau déroute:
<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>
Dans mon processeur bean, alors que j'ai spécifié:
RegisterUser registerUser = exchange.getIn().getBody(RegisterUser.class);
- Je obtenir le registre de l'utilisateur de l'objet. Tout fonctionne très bien.
Le problème est que je veux chameau de route de ma demande, sous certaines conditions, pour l'e.g:
Si l'opération de service est RegisterUser
je veux router le message vers mon haricot et si l'opération de service est UpdateUser
je veux router le message vers l'autre bean.
J'ai essayé d'utiliser le chameau xPath, mais il ne semble être au travail.
<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>
Je cherchais comment mettre en place chameau de route pour les différentes cibles, mais n'a pas trouvé quoi que ce soit. Peut-être que quelqu'un sait d'où pourrait être le problème?
OriginalL'auteur Paulius Matulionis | 2012-07-27
Vous devez vous connecter pour publier un commentaire.
Les informations de l'opération requise sera dans l'en-tête du message.
L'en-tête vous êtes à la recherche pour l'un est appelé "operationName'
Voici donc un exemple :
(Note de l'exemple à l'aide d'apache bélier plan d'action - mais il sera identique pour le printemps, autre que l'espace de noms)
OriginalL'auteur AlanFoster
essayez d'utiliser chameau-simple expressions au lieu de xpath pour cette...
OriginalL'auteur Ben ODay
Printemps XML itinéraire
Dans mon cas, j'utilise entrant Jetée EP.
- Je vérifier parametr dans la requête.
Invole URL http://localhost:8080/srv?alg=1
OriginalL'auteur Vladimir Azarov