【发布时间】:2018-02-08 14:11:29
【问题描述】:
我在使用 Camel/spring boot 在下面的插入语句中获取“myHeaderValue”时遇到问题。 当我运行程序时,我在控制台上看到“来自标头的已处理值是:一个”,但是我收到一个异常错误骆驼交换交付异常。 预期的原因是“:#myHeaderValue”未填充在下面的查询中。如果我理解骆驼,我认为标头会持续存在并传递给端点。
请告诉我如何将#myHeaderValue 传递到插入端点。
springBootVersion:1.5.4.RELEASE 骆驼: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();
// 来自 itemProcessor
@Override
public void process(Exchange exchange) throws Exception {
exchange.getIn().setHeader("myHeaderValue", "one");
}
【问题讨论】:
-
您很可能应该编写 headers.myHeaderValue。注意标题中的“s”。