3

我在 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);
4

1 回答 1

3

在消费者上使用消息选择器。选择器是类似 SQL 的查询。所以你可以写类似myCustomHeader = 123. 这是一个很好的备忘单

由于您使用 apache-camel 标记了问题,我猜您正在使用 Camel 设置。在这种情况下,您需要将选择器提供给 Camel。类似的东西from("activemq:queue:myqueue?selector=myCustomHeader%3D123").

于 2015-07-21T21:01:43.200 回答