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

how to set ActiveMQ connection username and password through JNDI

我正在使用 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 字符串中附加 user/password 信息。有人可以帮忙吗?谢谢!

您可以尝试使用类似以下内容的 URI 来设置它们:

java.naming.provider.url#tcp://localhost:61616?jms.userName=foo&jms.password=bar;

也可以在没有 jms 的情况下提供这些值。前缀,因为在某些情况下代码会去除它们,这在某种程度上取决于使用哪个 ConnectionFactory 以及通过代码设置这些值的路径,似乎在 JNDI 中代码实际上可能使用非前缀版本。测试将胜出并显示哪些有效。

只需在 JNDI 字符串中附加 "userName#foo;password#bar" 终于对我有用

tcp://localhost:61616?user=foo;password=bar 为我工作