gpt4 book ai didi

java - ActiveMQ:队列查找问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:07:58 25 4
gpt4 key购买 nike

我已经通过在 activemq.xml(ActiveMQ 版本 5.2.0)中配置队列来设置队列,如 documentation 中所述。 .

<destinations>
<queue physicalName="FOO.BAR" />
<queue physicalName="DUMMY" />
</destinations>

我正在尝试使用以下代码从 java(在同一主机上)访问它:

Hashtable properties = new Hashtable();
properties.put(Context.INITIAL_CONTEXT_FACTORY,
"org.apache.activemq.jndi.ActiveMQInitialContextFactory");
properties.put(Context.PROVIDER_URL, "tcp://localhost:61616");

context = new InitialContext(properties);

factory = (ConnectionFactory) context.lookup("ConnectionFactory");
connection = factory.createConnection();
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
queueName = "DUMMY"; // which can be either FOO.BAR or DUMMY
dest = (Destination) context.lookup(queueName);

尽管队列在 jconsole(树/org.apache.activemq/队列)中可见,但我收到以下错误:

javax.naming.NameNotFoundException: DUMMY

请告诉我我做错了什么。非常非常感谢!

最佳答案

首先你不必explicitly create any queues in the broker虽然它没有害处。

此外,代理中可用的目的地不会使用某种 JNDI 名称自动神奇地映射到 JNDI 上下文中。

你可以这样做 explicitly as described here .如果您想要自动神奇地填充 JNDI,则使用 dynamicQueues/DUMMY 的 JNDI 命名约定作为您查找的 JNDI 名称(如 Dynamically creating destinations 中所述)

关于java - ActiveMQ:队列查找问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/435640/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com