Ich habe ein Problem beim Abrufen der "MyHeaderValue" während der Insert-Anweisung unten mit Camel/Spring Boot. Wenn ich das Programm laufen sehe ich auf der Konsole "Verarbeitete Wert von Kopfzeile ist: eins", aber ich erhalte eine Ausnahmefehler Kamel Austausch Lieferung Ausnahme. Der Grund für die Expectation ist der ": #myHeaderValue" wird in der folgenden Abfrage nicht ausgefüllt. Wenn ich Camel verstehe, dachte ich, der Header bleibe bestehen und werde an die Endpunkte weitergegeben.Camel Spring Boot - Exchange-Problem
Bitte teilen Sie mir mit, wie ich den #myHeaderValue an den Endpunkt der Eingabe übergeben kann.
springBootVersion: 1.5.4.RELEASE Kamel: 2.19.1
from("sql:SELECT columnOne, columnTwo from t_item"
+ "?consumer.initialDelay=3000"
+ "&consumer.delay=3000"
+ "&outputClass=mypackage.model.Item")
.process(itemProcessor)
.log("Processed value from header is : ${header.myHeaderValue}")
.log("insert into t_item(columnOne, columnTwo) VALUES(${header.myHeaderValue}, 'two'")
.to("sql:insert into t_item(columnOne) SELECT 'data' FROM t_store whhere header = :#myHeaderValue")
.log("Row inserted")
.end();
// von itemProcessor
@Override
public void process(Exchange exchange) throws Exception {
exchange.getIn().setHeader("myHeaderValue", "one");
}
Sie sollten höchstwahrscheinlich headers.myHeaderValue schreiben. Beachten Sie das "s" in Kopfzeilen. –