您应该在控制台窗口中看到 Foo ,是的。
此代码将在FOO上生成一条消息,并在 Web 控制台(amq 5.6.0)中将队列显示为 FOO:
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!"));
您确定您使用 JNDI 来查找队列并且您没有在 jndi.properties 中配置任何内容吗?