我在Tomcat ActiveMQ服务器上配置了一组JMS队列 . 我已经为connectionFactory创建了一个Resource(通过将Broker指向tcp:localhost:61616),并在全局资源中的Server.xml中为Queue创建了一个资源,然后在context.xml中声明了这两个资源 .

现在我正在尝试从另一个tomcat服务器连接此队列并发送消息 . 当试图用jndi名称查找连接工厂时,我得到了NamingException - 在这个上下文中没有为ConnectionFactory JNDI绑定名称 .

我尝试实现这样的目的:在属性Provider_URL = http://Localhost:8080 INITIAL_CONTEXT_FACTORY = org.apache.naming.java.javaURLContextFactory中设置以下值

然后使用上面的属性值创建新的InitialContext,然后查找connectionFactory的jndi .

但它不起作用 .

我尝试使用ActiveMQContextFactory作为INITIAL_CONTEXT_FACTORY和Provider_URL = tcp:// localhost:61616直接获取ActiveMQ的上下文,并在客户端tomcat服务器的类路径中保留了一个简单的jndi.properties文件,如其他帖子中所述 . 它运作良好 .

但我不喜欢它 . 因为当我将activeMQ连接和Queue配置为Tomcat中的资源时,这意味着我应该能够通过Tomcat进行JNDI查找,而不是直接进入Active mq . 我不想给所有客户端提供ActiveMQ主机:端口 .

我假设在Tomcat服务器配置上必须有一些不正确的东西,它的connectionfactory / queue JNDI不可用于外部查找 .

我今天很挣扎 . 有人可以指出我可能犯的错误 .

提前致谢 .