2016-08-04 18 views
3

私はラクダでいくつかのルートを書いています。プロセッサを使用していくつかの変換を行いたいと思います。私はプロパティファイルを持っていて、うまくいきます。キャメルプロセッサ内のプロパティプレースホルダの使用方法

今、私はプロセッサ内の{{MAIL}}の値を読んでみたいと思います。

私はこれらの事を試してみました:

public class ProcessorPrepareMail implements Processor 
{ 

    @Override 
    public void process(Exchange exchange) throws Exception 
    { 
     //Plan A: Does not work.... I get an empty String 
     String mail = exchange.getProperty("MAIL", String.class); 

     //Plan B: Does not work.... I get the String "{{MAIL}}" 
     Language simple = exchange.getContext().resolveLanguage("simple"); 
     Expression expresion = simple.createExpression("{{MAIL}}"); 
     String valor = expresion.evaluate(exchange, String.class); 

     //Plan C: Does not work. It activates the default error handler 
     Language simple = exchange.getContext().resolveLanguage("simple"); 
     Expression expresion = simple.createExpression("${MAIL}"); 
     String valor = expresion.evaluate(exchange, String.class); 
    } 
} 

あなたは私を助けることができますか?

おかげ

答えて

10

それをするCamelContextのAPIがあります:

String mail = exchange.getContext().resolvePropertyPlaceholders("{{MAIL}}"); 
+0

が素晴らしいです!ありがとうございました! – Desenfoque

関連する問題