在我的应用程序中,我在apache骆驼中使用通配符,并且定义了如下的路由生成器:

from(“ activemq:queue:*。processQueue”)。bean(beanOne,“ someMethod”);

发送消息时,我将消息发送到“ {uniqueID} .processQueue”队列,因此我需要在beanOne的someMethod中获取该uniqueId。

最佳答案

完整的队列路径位于In消息的JMSDestination标头中(例如,JMSDestination为queue://test1.processQueue)。您可以使用字符串操作函数来获取所需的uniqueId

示例(uniqueId将为test1):

@Handler
public void someMethod(@Header("JMSDestination") String jmsDestination) {
    String uniqueId = jmsDestination.substring("queue://".length(), jmsDestination.indexOf(".processQueue"));
}

07-27 18:38