ActiveMQ动态队列的名称中包含动态队列

ActiveMQ动态队列的名称中包含动态队列,activemq,jndi,Activemq,Jndi,我使用动态队列来测试名称,比如dynamicQueues/Foo,但在web控制台中,我看到队列名称是dynamicQueues/Foo,而不仅仅是Foo 其他代码(不是我们的)使用相同的dynamicQueues/Foo,但控制台上的队列名称只是Foo,所以可以说是未对齐的 我已按照这里的说明: 我对web控制台中报告的队列名称是否应包含dynamicQueues感到困惑,结果发现很难调试我们的问题。您应该在控制台窗口中看到Foo,是的 此代码将在FOO上生成一条消息,并在web控制台(amq

我使用动态队列来测试名称,比如dynamicQueues/Foo,但在web控制台中,我看到队列名称是dynamicQueues/Foo,而不仅仅是Foo

其他代码(不是我们的)使用相同的dynamicQueues/Foo,但控制台上的队列名称只是Foo,所以可以说是未对齐的

我已按照这里的说明:


我对web控制台中报告的队列名称是否应包含dynamicQueues感到困惑,结果发现很难调试我们的问题。

您应该在控制台窗口中看到Foo,是的

此代码将在FOO上生成一条消息,并在web控制台(amq 5.6.0)中将队列显示为FOO:


您确定正在使用JNDI查找队列,并且没有在JNDI.properties中配置任何内容吗?

您应该在控制台窗口中看到Foo,是的

此代码将在FOO上生成一条消息,并在web控制台(amq 5.6.0)中将队列显示为FOO:

您确定您正在使用JNDI查找队列,并且没有在JNDI.properties中配置任何内容吗?

(我无法回复上面的评论,很抱歉在这里回答。)

这是我的问题(在scala中):

这是可行的,队列称为FOO
val destination=JmsConnectionFactory.initialContext.lookup(“dynamicQueues/FOO”).asInstanceOf[destination]
val consumer=session.createConsumer(目标)

这不需要,队列称为dynamicQueues/FOO
val queue=session.createQueue(“dynamicQueues/FOO”)
val consumer=session.createConsumer(队列)

唉,我想这是有道理的。

(我无法回应上面的评论,很抱歉在这里回答。)

这是我的问题(在scala中):

这是可行的,队列称为FOO
val destination=JmsConnectionFactory.initialContext.lookup(“dynamicQueues/FOO”).asInstanceOf[destination]
val consumer=session.createConsumer(目标)

这不需要,队列称为dynamicQueues/FOO
val queue=session.createQueue(“dynamicQueues/FOO”)
val consumer=session.createConsumer(队列)


唉,我想这是有道理的。

你能发布代码中有问题的部分吗?正如我上面的示例中所示,它与ActiveMQ 5.6.0配合使用。同时,我会把你的答案标记为正确的,因为它适合你。你能把代码中有问题的部分贴出来吗?正如我上面的示例中所示,它与ActiveMQ 5.6.0配合使用。同时,我会把你的答案标记为正确,因为它对你有用。
Properties props = new Properties();
props.setProperty(Context.INITIAL_CONTEXT_FACTORY,"org.apache.activemq.jndi.ActiveMQInitialContextFactory");
props.setProperty(Context.PROVIDER_URL,"tcp://127.0.0.1:61616");
javax.naming.Context ctx = new InitialContext(props);
ConnectionFactory cf = (ConnectionFactory)ctx.lookup("ConnectionFactory");
Connection conn = cf.createConnection();
Destination dest = (Destination)ctx.lookup("dynamicQueues/FOO");
Session s = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
MessageProducer prod = s.createProducer(dest);
prod.send(s.createTextMessage("Hello, World!"));