QPid与JMS。无法使用jndi创建/绑定队列

时间:2015-07-16 19:07:22

标签: jms jndi qpid

使用:qpid-broker 0.32,qpid-jms-client-0.3.0

您好。 AMQP协议的新用户。我正在尝试通过JNDI创建并绑定队列到已存在的扇出交换,然后通过JMS客户端连接。如果我创建交换,队列,并直接从webPortal绑定它一切正常。如果我通过webPortal创建只是交换,然后使用我的jndi属性文件来创建和绑定队列,它无法解析,我得到一个javax.jms.InvalidDestinationException。我做错了什么?

我在localhost:5672上设置了一个名为TEST_FANOUT_EXCHANGE的自定义扇出交换。虚拟主机都是默认主机。

我的jndi.properties文件是:

java.naming.factory.initial = org.apache.qpid.jms.jndi.JmsInitialContextFactory connectionfactory.qpidConnectionfactory = amqp:// localhost:5672

queue.fanoutQueue = messagequeue destination.fanoutExchange = fanout:// TEST_FANOUT_EXCHANGE // messagequeue?durable ='true'& autodelete ='true'& exclusive ='false'

Java代码如下:

Properties properties = new Properties();
InputStream input = new FileInputStream("conf/jndi.properties");
properties.load(input);

Context context = new InitialContext(properties); 
ConnectionFactory connectionFactory
                = (ConnectionFactory) context.lookup("qpidConnectionfactory"); 
Connection connection = connectionFactory.createConnection("guest","guest"); 
            connection.start(); 
Session session=connection.createSession(false,Session.AUTO_ACKNOWLEDGE);
Queue destination = (Queue) context.lookup("fanoutQueue");

MessageConsumer messageConsumer = session.createConsumer(destination); 

根据文档,如果交换或队列不存在,它将自动创建和绑定。那为什么不发生这种情况呢?

谢谢!

丹尼斯

0 个答案:

没有答案