對於下面的代碼WMQ JNDI查找與認證
public class JMSSamplePut
{
private static String initialContextUrl = null;
private static String connectionFactoryFromJndi = "UM_QMGR_QCF";
private static String queueFromJndi = "BCUFXW.EXB.ATHENA.FX.IN";
private static String outString = "A sample text message " +
"from JMSSampleput";
private static int retryInterval = 10;
private static int retryCount = 3;
private static int connStatus = 1;
/**
* @param args
*/
public static void main(String[] args)
{
// Variables
Queue ioQueue = null;
QueueSession session = null;
QueueSender queueSender = null;
QueueConnection connection = null;
QueueConnectionFactory factory = null;
boolean transacted = false;
int i = 0;
try {
// Instantiate the initial context for JNDI
String contextFactory ="com.sun.jndi.fscontext.RefFSContextFactory";
Hashtable environment = new Hashtable();
environment.put(Context.INITIAL_CONTEXT_FACTORY, contextFactory);
environment.put(Context.PROVIDER_URL, "file:/c:/jndi");
Context context = new InitialDirContext(environment);
System.out.println("Initial context found!");
// Create a Queue ConnectionFactory
factory = (QueueConnectionFactory) context.lookup(connectionFactoryFromJndi);
...........
最後一行與
陷入失敗的JMSException:com.ibm.msg.client.jms.DetailedJMSSecurityException:JMSWMQ2013:安全認證無法通過連接模式'客戶端'和主機名'NATMIB1.hostname.net(1414)'爲隊列管理器'提供。請檢查您正在連接的隊列管理器上提供的用戶名和密碼是否正確 鏈接的異常:com.ibm.mq.MQException:JMSCMQ0001:WebSphere MQ調用失敗,並顯示compcode'2'('MQCC_FAILED')原因'2035'( 'MQRC_NOT_AUTHORIZED')。 成品
JVM ARGS
-Djavax.net.ssl.keystore=c://keystore//a_dev.jks \
-Djavax.net.ssl.keyStorePassword=******** \
-Djavax.net.ssl.trustStorePassword=******** \
-Djavax.net.ssl.trustStore=c://keystore//cacerts.jks \
-Djavax.net.debug=all
任何指針?爲什麼是以下行?
安全認證無效這是對的QueueManager「與連接模式「客戶」和主機名「NATMIB1.hostname.net(1414)」
貌似JNDI代理是無法找到所提供的」 QueueManager的名稱? 我在.bindings文件中的以下行和隊列管理器名稱預先NATMIB1
UM_QMGR_QCF/RefAddr/3/Content=NATMIB1.xyz.net
感謝
孫大信
WMQ不檢查密碼。 –