Java ActiveMQ:队列查找问题
我通过在activemq.xml(activemq版本5.2.0)中配置队列来设置队列,如中所述 我收到以下错误,尽管队列在jconsole(Tree/org.apache.activemq/queue)中可见: 请告诉我我做错了什么。非常非常感谢 首先,你不必这么做,尽管这样做没有坏处 此外,代理中可用的目的地也不会自动神奇地映射到使用某种JNDI名称的JNDI上下文中Java ActiveMQ:队列查找问题,java,jms,activemq,Java,Jms,Activemq,我通过在activemq.xml(activemq版本5.2.0)中配置队列来设置队列,如中所述 我收到以下错误,尽管队列在jconsole(Tree/org.apache.activemq/queue)中可见: 请告诉我我做错了什么。非常非常感谢 首先,你不必这么做,尽管这样做没有坏处 此外,代理中可用的目的地也不会自动神奇地映射到使用某种JNDI名称的JNDI上下文中 你可以这样做。如果您想要自动填充JNDI,那么使用dynamicQueues/DUMMY的JNDI命名约定作为您查找的JND
你可以这样做。如果您想要自动填充JNDI,那么使用dynamicQueues/DUMMY的JNDI命名约定作为您查找的JNDI名称(如中所述)Hmm。。嗯,当我想听队列时,我通常会这样做。 (从javax.jms导入) 排队
// Connect to ActiveMQ
ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(messageBrokerURL);
connection = factory.createConnection();
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// List to Dummy Queue
queue = session.createQueue("DUMMY");
messageConsumer = session.createConsumer(queue);
messageConsumer.setMessageListener(queueHandler);
// Start the connection
connection.start();
并确保处理程序实现MessageListener。谢谢你,伯尼。问题是,您有特定于ActiveMQ的代码,上面列出的代码也可以与其他JMS实现完美结合,即OpenJms。感谢您解释创建主题/队列和将其映射到JNDI上下文之间的区别。我怀疑我们试图解决的队列/主题连接问题的根源在于假设creation==JNDI注册。
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);
javax.naming.NameNotFoundException: DUMMY
// Connect to ActiveMQ
ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(messageBrokerURL);
connection = factory.createConnection();
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// List to Dummy Queue
queue = session.createQueue("DUMMY");
messageConsumer = session.createConsumer(queue);
messageConsumer.setMessageListener(queueHandler);
// Start the connection
connection.start();