我是ActiveMQ的新手,我试图了解ActiveMQ命名服务的工作原理。 如果我已正确理解,为了能够使用activeMQ代理,必须通过JNDI来检索connectionFactory和目标(主题,队列)。
ActiveMQ提供命名服务,其位置通过jndi.properties文件中的 java.naming.provider.url 变量定义。 阅读类代码ActiveMQInitialContextFactory和ActiveMQConnectionFactory我注意到变量java.naming.provider.url( Context.PROVIDER_URL )用于启动BrokerURL的值,这是用于定位JMS代理,而不是查找命名服务。
我的问题如下:
答案 0 :(得分:0)
据我所知,ActiveMQ不提供服务器端命名服务。也就是说,没有单独的服务侦听某些特定端口,它只响应名称查询。通常在使用JNDI查找来定位ActiveMQ代理或目标时,这将位于应用程序服务器上下文中,其中应用程序服务器提供JNDI基础结构。
在应用程序服务器上下文之外,我的经验是开发人员通常会实例化ActiveMQConnectionFactory
并直接设置其属性,而不使用JNDI。