我试图从Camel路由中的org.restlet.http.headers标头集合中提取值。
我的传入POST有一个名为IncomingRequestType:ABCD的http标头属性。 Camel在exchange头集合中移动它,但是它被隐藏在org.restlet.http.headers里面,它本身就是一个头文件集合。
我可以使用以下代码提取流程中的值:
.process(new Processor() {
public void process(Exchange exchange) throws Exception {
org.restlet.util.Series<Header> httpHeaders = null;
httpHeaders = (Series<Header>) exchange.getIn().getHeader("org.restlet.http.headers");
String reqType = httpHeaders.getValues("IncomingRequestType").toString();
}})
在进程之外,我需要访问.choice()中的IncomingRequestType。when()
e.g。我希望能够做到:
.choice()
.when(header("org.restlet.http.headers")["IncomingRequestType"]).isEqualTo("ABCD"))
有关如何做到这一点的任何建议。我尝试过创建谓词但无法获得合适的解决方案。
答案 0 :(得分:0)
这可以在simple language:
中完成.choice()
.when(simple("${in.header.org.restlet.http.headers[IncomingRequestType]} == 'ABCD'"))