Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ActiveMQ:队列查找问题_Java_Jms_Activemq - Fatal编程技术网

Java ActiveMQ:队列查找问题

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

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

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

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

首先,你不必这么做,尽管这样做没有坏处

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


你可以这样做。如果您想要自动填充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();