3
Ich schreibe einige Routen mit camel, und ich möchte einige Transformationen mit einem Prozessor vornehmen. Ich habe eine Eigenschaftendatei und es funktioniert ok.So verwenden Sie Platzhalter für Eigenschaften in einem Camel-Prozessor
from(URI_LOG)
.routeId("{{PREFIX_LOG}}.prepareForMQ")
.log("Mail to: {{MAIL}}") //The value is read from a property file
.process(new ProcessorPrepareMail())
.log("${body}");
Nun ... Ich möchte den Wert von {{MAIL}} innerhalb des Prozessors lesen, aber ich weiß nicht, wie.
habe ich versucht, diese Dinge:
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);
}
}
Können Sie mir helfen?
Dank
Excellent! Vielen Dank! – Desenfoque