【发布时间】:2018-02-15 10:57:01
【问题描述】:
我有一个队列,我想在其中处理选定的消息,并且能够使用 Java DSL 来实现它,如下所示:
from("amq:queue:{{jms.miscQueue}}?transacted=false&selector=DSBSelectorID %3D '" + SELECTOR_ID_TRANSACTION_A2A + "'")
from("amq:queue:{{jms.miscQueue}}?transacted=false&selector=DSBSelectorID %3D '" + SELECTOR_ID_TRANSACTION_A2P + "'")
现在我想通过如下创建 JMS 端点来实现相同的目的(实际上 Java DSL 工作正常,但随着越来越多的选项嵌入到 URI 中,随着时间的推移调试变得困难):
JmsQueueEndpoint activeMQEndpointA2A = endpoint("amq:queue:{{jms.miscQueue}}", JmsQueueEndpoint.class);
activeMQEndpointA2A.setTransacted(false);
activeMQEndpointA2A.setSelector("DSBSelectorID %3D 'Route-Transaction-A2A'");
JmsQueueEndpoint activeMQEndpointA2P = endpoint("amq:queue:{{jms.miscQueue}}", JmsQueueEndpoint.class);
activeMQEndpointA2P.setTransacted(false);
activeMQEndpointA2P.setSelector("DSBSelectorID %3D 'Route-Transaction-A2P'");
当我在我的 Camel Routes 中使用 activeMQEndpointA2A 和 activeMQEndpointA2P 时,它仅适用于第一个端点,而第二个端点无法连接到队列并不断抛出如下错误
目标的 JMS 消息侦听器调用程序设置失败 'io.az.jms' - 试图恢复。原因:DSBSelectorID %3D 'Route-Transaction-A2P'
有人可以建议它是否可以通过 Java Endpoint 实现?另外,如果我有多个路由并且要在 Endpoint URI 上定义多个选项,那么推荐的方法是什么?
【问题讨论】:
-
您是否将这些端点添加到
context?
标签: apache-camel jms activemq