Camel Unterschied zwischen route-Eigenschaften und Eigenschaften von exchange
Kann jemand mir erklären die Unterschiede zwischen den beiden Eigenschaften?
@Override
public void setUp() throws Exception {
context = new DefaultCamelContext(new SimpleRegistry());
template = context.createProducerTemplate();
context.addRoutes(new RouteBuilder() {
public void configure() throws Exception {
PropertiesComponent prop = context.getComponent(
"properties", PropertiesComponent.class);
prop.setLocation("classpath:test.properties");
from("direct:start")
.log("Property: ${properties:a}")
.process(new Processor() {
@Override
public void process(Exchange ex) throws Exception {
String a = ex.getProperty("a", String.class);
LOG.info("Property: " + a);
}
})
;
}
});
context.getShutdownStrategy().setTimeout(1);
context.start();
}
@Test
public void testRoute() throws Exception {
template.sendBody("direct:start", null);
}
Die Eigenschaften-Datei (test.properties
):
a = a
Ausgabe:
2015-09-03 14:38:01,740 | INFO | route1 | Property: a
2015-09-03 14:38:01,743 | INFO | CamelTest2 | Property: null
Die erste Zeile ist aus .log("${properties:a}")
, so dass es gefunden werden kann. Allerdings String a = ex.getProperty("a", String.class);
nicht. Beide sind Eigenschaften und Punkt in die gleiche Eigenschaft, richtig?
Was ist der Unterschied, und wie kann ich finden die Eigenschaft, die in den Prozessor?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
Exchange
wird nur erstellt, auf den Empfang der Anforderung im client-Seite. Und dies bedeutet, dass Ihre Camel-Prozessor-Zugriff auf dieMessage
nur und nicht das Eigentum von externen Ressourcen.Den Exchange-Eigenschaften sind die Botschaft, die die meta-Informationen. Als pro der doc,