2013-12-19 21 views
1

是否可以通过JNDI发现所有ActiveMQ队列和主题?使用“list”方法可以使用HornetQ来获取它们。我想为多个代理实现JMS客户端,并且不希望在jndi.properties中预先配置所有队列。ActiveMQ使用JNDI自动发现所有已部署的队列和主题

Properties props = new Properties();  
props.setProperty("java.naming.factory.initial","org.apache.activemq.jndi.ActiveMQInitialContextFactory"); 
props.setProperty("java.naming.provider.url", "tcp://localhost:61616"); 

Context context = new InitialContext(props); 

NamingEnumeration<NameClassPair> names = ctx.list(jndiPrefix); 

回答

0

的ActiveMQ的InitialContext工厂实现了一个简单的HashMap是无关的经纪人,因为除非授权,防止这种行为的代理将根据需要创建任何目的地。 您可以使用动态上下文 - dynamicQueues/FOO.BAR或dynamicTopics/FOO.BAR来访问名为FOO.BAR的目标,无需任何其他配置。 请参阅:文档1中的jndi-support以获取更多详细信息。