我从MQ管理员的USER_ID和PASSWORD提供,从我们在Webloigc 12c(12.1.3)上托管的JMS应用程序连接到IBM MQ。
以下是我在Weblogic中所做的配置: - 1.创建外部服务器。指定的JNDI初始上下文工厂为" com.sun.jndi.fscontext.RefFSContextFactory"和JNDI连接URL作为.bindings文件的路径。
在外国服务器中创建目的地。
在外部服务器中创建连接工厂。指定MQ管理员提供的用户名和密码。
重新启动服务器。
重启后,服务器日志显示错误" JMSWMQ2013"和MQ管理员报告了以下错误
----- cmqxrsrv.c : 2321 -------------------------------------------------------
09/30/2016 11:09:46 AM - Process(10686.64) User(mqm) Program(amqzlaa0)
Host(vlq9dmqsdv01.fulcrumlimited.ca) Installation(Installation1)
VRMF(8.0.0.4) QMgr(FCSWIFTD)
AMQ5540: Application 'weblogic.Server' did not supply a user ID and password
MQ管理员还报告他接收用户ID作为OS用户创建EJB而不是外部服务器中指定的用户ID。
我需要做什么配置,以便weblogic向IBM MQ发送正确的用户名和密码。
答案 0 :(得分:1)
您可以通过JMS API调用传递用户标识符和密码:
javax.jms.ConnectionFactory.createConnection(String, String)
或者,如果使用简化的JMS 2.0 API:
javax.jms.ConnectionFactory.createContext(String, String)
其中第一个String参数是在建立连接时传递给MQ的用户标识符,第二个参数是密码。
如果您不通过上述API调用提供用户凭据,则JMS的MQ类将默认将启动JVM的用户标识符发送到连接上的MQ队列管理器而不是密码。
供参考: https://docs.oracle.com/javaee/7/api/javax/jms/ConnectionFactory.html