Utilisation de l'Échange de la Propriété de Chameau DSL “”
Je veux définir une propriété sur un Chameau Exchange, puis utiliser cette propriété lors de l'enregistrement du fichier. Dans mon camel dsl j'ai le texte suivant:
.process(processorToSetExhangeProperty) //sets the property <uid> on the exchange
.to("file:/tmp?fileName=file-" + property("uid") + ".xml")
Le fichier est sauvegardé comme:
"file-property{uid}.xml" though
Mon processeur est comme suit:
@Override
public void process(Exchange exchange) throws Exception {
UUID uuid = UUID.randomUUID();
exchange.setProperty("uid",
uuid.toString());
exchange.setOut(exchange.getIn());
}
Des pensées sur ce qui pourrait mal se passer ou comment je peux faire?
OriginalL'auteur dev | 2013-04-25
Vous devez vous connecter pour publier un commentaire.
Le "à" dans le Chameau n'est pas interprété lors de l'exécution.
Vous devez utiliser recipientList si vous voulez construire votre URI de façon dynamique.
Voir http://camel.apache.org/how-do-i-use-dynamic-uri-in-to.html
OriginalL'auteur Ben Goldin
Mis à JOUR
Nouvelle réponse acceptée au-dessus de la place de cette précédente:
La réponse est [a]:
.("fichier:/tmp?nom de fichier=fichier${propriété.uid}") + ".xml")
Cette simple expression tire en l'échange de la propriété. Pour une liste complète de ce que vous pouvez tirer dans, voir la Expression Simple De La Langue De Référence
to()
composante est évaluée au cours de l'itinéraire de la construction. Dans votre cas, il fonctionne en partie parce que le liquide est probablement calculée une fois. Si vous vérifiez votre uid après plus d'un message, vous remarquerez sans doute qu'il ne change pas.OriginalL'auteur dev