Apache camel 使用RouteRefer.adviceWith(..)进行测试时,驼峰路由中的标头值丢失
使用camel 3.4.4,我有一个使用Apache camel 使用RouteRefer.adviceWith(..)进行测试时,驼峰路由中的标头值丢失,apache-camel,Apache Camel,使用camel 3.4.4,我有一个使用.to(getCxfEndpoint())调用cxf端点的路由,我有一个在前面的路由中设置的头,比如进程(exchange->exchange.getIn().setHeader(“myKey”,“myValue”): 我尝试使用以下方法对此进行单元测试: RouteReifer.adviceWith(routeDefinition, mcc, new AdviceWithRouteBuilder() { @Override public
.to(getCxfEndpoint())
调用cxf端点的路由,我有一个在前面的路由中设置的头,比如进程(exchange->exchange.getIn().setHeader(“myKey”,“myValue”)
:
我尝试使用以下方法对此进行单元测试:
RouteReifer.adviceWith(routeDefinition, mcc, new AdviceWithRouteBuilder() {
@Override
public void configure() {
weaveByString("To[http://myurl.com/xxx").replace()
process(exchange -> {
log.debug("Assume external call is made and I can see the headers in exchange here");
});
}
});
但是在路由中,当我尝试获取头exchange.getIn().getHeader(“myKey”)时
,它是空的。这只发生在测试中-当您运行真正的路由时,它实际上起作用。我无法弄清楚为什么在使用weaveByString
模拟调用后标头会丢失。而且标头仍然存在于上面过程中的lambda中
提前谢谢
RouteReifer.adviceWith(routeDefinition, mcc, new AdviceWithRouteBuilder() {
@Override
public void configure() {
weaveByString("To[http://myurl.com/xxx").replace()
process(exchange -> {
log.debug("Assume external call is made and I can see the headers in exchange here");
});
}
});