我在activemq队列中有一个消息列表。每条消息都有一个带有值的自定义标头属性。我应该如何只能访问自定义标头属性值= 123的消息。?
我使用下面的内容从队列中选择一条消息。如何选择具有customHeaderProperty = 123的所有消息或单个消息。?
ConsumerTemplate consumerTemplate = camelContext.createConsumerTemplate();
Exchange ex = consumerTemplate.receive("activemq:queueName",10000);
String data = ex.getIn().getBody(String.class);
String number = ex.getIn().getHeader("customProperty", String.class);
答案 0 :(得分:2)
在消费者身上使用消息选择器。选择器是类似SQL的查询。所以你可以写一些像myCustomHeader = 123
这样的东西。这是pretty good cheat sheet。
由于您使用apache-camel标记了问题,我猜您正在使用Camel设置。在这种情况下,您需要为Camel提供选择器。类似于from("activemq:queue:myqueue?selector=myCustomHeader%3D123").
。