2012-12-26 10 views
5

Ist es möglich, eine Nachrichtenkopfzeile auf einen aus einer Eigenschaftendatei gelesenen Wert zu setzen, unter Verwendung der camel Properties Component? Ich kann solche Eigenschaften auf URI-Optionen setzen, aber ich kann sie nicht als Header-Werte festlegen.Wie setze ich eine Kopfzeile auf einen Wert aus einer Eigenschaftendatei in Apache Camel?

Ich brauche etwas wie folgt aus:

<camel:setHeader headerName="actionId"> 
    <camel:constant>{{onus.transPosting.RtSFailed}}</camel:constant> 
</camel:setHeader> 

wo onus.transPosting.RtSFailed eine Eigenschaft Schlüssel auf einer Datei importiert mit Kamel Eigenschaften Komponente festgelegt ist.

Hinweis: Ich bin mit Apache Camel 2.10.1

UPDATE

Mit dem <propertyPlaceholder> wie this discussion vorgeschlagen hat nicht funktioniert und es wird eine Ausnahme:

Caused by: org.apache.camel.language.simple.types.SimpleParserException: Unknown function: onus.transPosting.RtSFailed

+0

' $ {onus.transPosting.RtsFailed}' funktioniert nicht? (So ​​gut wie keine Erfahrung mit Apache Camel) –

+0

nein es nicht :( –

+0

Siehe diese Diskussion: http://camel.465427.n5.nabble.com/using-values-from-a-properties-file-in -setHeader-method-td5154287.html –

Antwort

7

Ja, Sie können die einfache Sprache verwenden, die eine Eigenschaftsfunktion hat: http://camel.apache.org/simple

<camel:setHeader headerName="actionId"> 
    <camel:simple>${properties:onus.transPosting.RtSFailed}</camel:simple> 
</camel:setHeader> 

Obwohl ich denke, wir haben in den neuesten Camel Releases behoben, dass < camel: constant> Eigenschaft Platzhalter auch auflösen wird.

+1

Mein schlechtes, ich hätte erwähnt werden, welche Version ich verwende, habe ich die Frage entsprechend aktualisiert .. Wie auch immer, die einfache Eigenschaften-Funktion funktionierte für mich . Vielen Dank :) –

Verwandte Themen