Apache 从.choice()中的Camel头中提取org.restlet.http.headers值

Apache 从.choice()中的Camel头中提取org.restlet.http.headers值,apache,apache-camel,restlet,Apache,Apache Camel,Restlet,我试图从Camel路由中的org.restlet.http.headers头集合中提取一个值 我收到的帖子有一个名为IncomingRequestType:ABCD的http头属性。 Camel将其移动到exchange headers集合中,但它被隐藏在org.restlet.http.headers中,org.restlet.http.headers本身就是一个标头集合 我可以使用以下代码在流程中提取值: .process(new Processor() { public void

我试图从Camel路由中的org.restlet.http.headers头集合中提取一个值

我收到的帖子有一个名为IncomingRequestType:ABCD的http头属性。 Camel将其移动到exchange headers集合中,但它被隐藏在org.restlet.http.headers中,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();
}})
关于如何做到这一点的任何建议。我尝试过创建谓词,但没有找到合适的解决方案

这可以通过以下方式完成:

这可以通过以下方式完成:


我认为这行不通。我试过了,它搜索了名为“org.restlet.http.headers[IncomingRequestType]”的标题,但我认为它行不通。我尝试了,它搜索名为“org.restlet.http.headers[IncomingRequestType]”的标题
.choice()
    .when(header("org.restlet.http.headers")["IncomingRequestType"]).isEqualTo("ABCD"))
.choice()
    .when(simple("${in.header.org.restlet.http.headers[IncomingRequestType]} == 'ABCD'"))