使用来自队列的activemq,camel选择器选择特定的头消息

Dav*_*ave 1 activemq-classic jms apache-camel custom-headers

如何使用队列中的特定标头消息.我正在使用camel activemq.

routebuilder:

.....
    from("activemq:Q1").
      .setHeader("myHeader",xpath(...))
          .to("activemq:Q2")
.....
Run Code Online (Sandbox Code Playgroud)

我尝试使用那些在另一个类中具有特定标题的消息.

....
ConsumerTemplate consumerTemplate = camelContext.createConsumerTemplate();
Exchange exchange = consumerTemplate.receive("activemq:Q2",10000);

String body = exchange.getIn().getBody(String.class);
String customvalue = exchange.getIn().getHeader("myHeader", String.class);
.....
Run Code Online (Sandbox Code Playgroud)

我怎样才能获得myHeader = 123的那些消息.

Cla*_*sen 5

您可以使用JMS消息选择器.在Camel使用者端点中,您可以使用以下selector选项:http://camel.apache.org/jms

东西很长的路线

Exchange exchange = consumerTemplate.receive("activemq:Q2?selector=myHeader",10000);
Run Code Online (Sandbox Code Playgroud)

虽然我不记得标题的名称是否足够或你需要做什么

Exchange exchange = consumerTemplate.receive("activemq:Q2?selector=myHeader %3D '*'",10000);
Run Code Online (Sandbox Code Playgroud)

%3D =编码的位置.