Dans Apache camel, quel est le meilleur moyen de transmettre les valeurs d'un processeur d'échange à un autre (et pourquoi):
setProperty
lors de la construction de la route.Les propriétés et les en-têtes sont à peu près les mêmes. Les en-têtes sont toutefois convertis en/à partir d'en-têtes spécifiques au protocole sur certains composants, tels que Jms. Alors,
Une distinction non mentionnée par Ben et Petter est que les propriétés sont stockées en toute sécurité pendant toute la durée du traitement du message dans Camel. En revanche, les en-têtes font partie du protocole de message et ne peuvent pas être propagés pendant le routage. Par exemple, JMS a des limitations concernant ce que vous pouvez stocker en tant qu'en-têtes, etc.
Vous voudrez peut-être lire le chapitre 1 gratuit du livre Camel in Action car il couvre les concepts de Camel avec Exchange, Message, etc.
le Exchange est passé entre les processeurs. Il contient les propriétés, le message IN et le message OUT facultatif. Chacun de ceux-ci est capable de stocker des données d'objet, mais en général:
Cela dit, cela dépend vraiment du composant appelé suivant votre processeur. La plupart ont des en-têtes et/ou des valeurs de corps nécessaires pour utiliser le noeud final, etc. Voir la page composant spécifique pour ces détails.
En outre, l'échange/le message sont expliqués plus en détail sur ces pages:
http://camel.Apache.org/maven/current/camel-core/apidocs/org/Apache/camel/Exchange.html
http://fusesource.com/docs/router/2.8/prog_guide/MsgFormats-Exchanges.html
La réponse est ici:
Propriétés: Les propriétés sont une carte et peuvent ressembler à des en-têtes de message La principale différence réside dans leur durée de vie: les propriétés existent pendant l'exécution de la totalitéexchange, alors que les en-têtes sont limités à la durée du message (un message Peut changer beaucoup pendant le routage, donc pendant l'exécution de l'échange). Camel Lui-même peut ajouter des propriétés pour certains cas d'utilisation.