如何通过JNDI设置ActiveMQ连接用户名和密码

如何通过JNDI设置ActiveMQ连接用户名和密码,activemq,jndi,oozie,Activemq,Jndi,Oozie,我正在使用Oozie,试图启用它的JMS通知功能。 我使用以下JNDI字符串连接activeMQ代理 java.naming.factory.initial#org.apache.activemq.jndi.ActiveMQInitialContextFactory; java.naming.provider.url#tcp://localhost:61616; connectionFactoryNames#ConnectionFactory 当前oozie服务器将引发异常: javax.jm

我正在使用Oozie,试图启用它的JMS通知功能。 我使用以下JNDI字符串连接activeMQ代理

java.naming.factory.initial#org.apache.activemq.jndi.ActiveMQInitialContextFactory;
java.naming.provider.url#tcp://localhost:61616;
connectionFactoryNames#ConnectionFactory
当前oozie服务器将引发异常:

javax.jms.JMSException: User name [null] or password is invalid.

但是,我不知道如何在上面的JNDI字符串中附加用户/密码信息。有人能帮忙吗?谢谢

您可以尝试使用以下方法从URI设置它们:

java.naming.provider.url#tcp://localhost:61616?jms.userName=foo&jms.password=bar;
这些值可能也可以在没有jms的情况下提供。前缀,因为在某些情况下代码会去除它们,这在某种程度上取决于使用哪个ConnectionFactory以及通过代码设置这些值的路径,似乎在JNDI中,代码实际上可能会使用非前缀版本。测试将胜出并显示哪种方法有效

只需在JNDI字符串中添加“userName#foo;password#bar”就可以了,最终对我有效了

userName#foo;密码栏