区分apache camel中使用通配符时调用了哪个队列
Differentiate which queue was called when using wildcards in apache camel
在我的应用程序中,我在 apache camel 中使用通配符并且我定义了这样的路由生成器:
from("activemq:queue:*.processQueue").bean(beanOne,"someMethod");
在发送消息时,我会将消息发送到“{uniqueID}.processQueue”队列,因此我需要获取 uniqueId在 beanOne.
的 someMethod 里面
完整的 queue 路径在 In
消息的 JMSDestination
header 中(例如 JMSDestination 是 queue://test1.processQueue
)。您可以使用字符串操作函数来获取所需的 uniqueId
.
示例(uniqueId
将是 test1
):
@Handler
public void someMethod(@Header("JMSDestination") String jmsDestination) {
String uniqueId = jmsDestination.substring("queue://".length(), jmsDestination.indexOf(".processQueue"));
}
在我的应用程序中,我在 apache camel 中使用通配符并且我定义了这样的路由生成器:
from("activemq:queue:*.processQueue").bean(beanOne,"someMethod");
在发送消息时,我会将消息发送到“{uniqueID}.processQueue”队列,因此我需要获取 uniqueId在 beanOne.
的 someMethod 里面完整的 queue 路径在 In
消息的 JMSDestination
header 中(例如 JMSDestination 是 queue://test1.processQueue
)。您可以使用字符串操作函数来获取所需的 uniqueId
.
示例(uniqueId
将是 test1
):
@Handler
public void someMethod(@Header("JMSDestination") String jmsDestination) {
String uniqueId = jmsDestination.substring("queue://".length(), jmsDestination.indexOf(".processQueue"));
}