java - 区分apache Camel中使用通配符时调用的是哪个队列

标签 java apache-camel activemq wildcard consumer

在我的应用程序中,我在 apache Camel 中使用通配符,并且定义了如下所示的路由构建器:

from("activemq:queue:*.processQueue").bean(beanOne,"someMethod");

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

最佳答案

完整的队列路径位于 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"));
}

关于java - 区分apache Camel中使用通配符时调用的是哪个队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45637095/

相关文章:

java - Camel Junit 调试 EndpointInject 的 Autowiring ,它是空的

java - 模拟 Apache Camel 在 JUnit 测试中的位置

ActiveMQ 消息组 - ConcurrentModificationException

queue - 用于查看、标记为完成然后删除的开源排队解决方案

java - 单选按钮 If 语句

java - 方法initLoader问题

java - Java 中的数据库后端 webapp 测试 [需要工具]

java - 如何在 Spring XML 中使用 Camel 消息过滤器 Bean

java - "Head First Servlet and JSP"示例不起作用

java - Stomp 的 MessageMap 格式是不是完全不能用了?