连接 IBM - MQ 时出现 jmeter(jms 点对点)错误:javax.naming.NoInitialContextException
jmeter (jms point-to-point) error while connecting IBM - MQ : javax.naming.NoInitialContextException
连接 IBM - MQ 时出现 jmeter(jms 点对点)错误:
javax.naming.NoInitialContextException: Cannot instantiate class: com.sun.jndi.fscontext.RefFSContextFactory [Root exception is java.lang.ClassNotFoundException: com.sun.jndi.fscontext.RefFSContextFactory
需要帮助解决错误。仅供参考:com.ibm.mq.allclient.jar
添加到 lib 文件夹中,32 位 jdk 1.8
jms point-to-point configuration in jemeter
JNDI configuration in mq explorer
添加 jar(复制所有 MQ Jar(随完整 Websphere MQ 安装一起提供)并将它们放入 JMeter/Lib)后遇到新错误:
Error: Response message: java.lang.IllegalStateException: QueueConnectionFactory expected, but got com.ibm.mq.jms.MQConnectionFactory
绑定文件就位 (C:\Users*****\Downloads\apache-jmeter-3.3\apache-jmeter-3.3\JNDI-Directory)
根据 oracle post 你缺少 fscontext.jar
the ClassNotFoundException for com.sun.jndi.fscontext.RefFSContextFactory is solved by adding fscontext.jar to your classpath
您可以下载here并复制到JMeter lib文件夹
您没有说明您使用的是哪个版本的 IBM MQ jar 文件,但是 com.ibm.mq.allclient.jar 是在 IBM MQ v8 中引入的,因此您必须使用 v8 或 v9。
v9 知识中心页面“What is installed for IBM MQ classes for JMS”声明如下:
The fscontext.jar and providerutil.jar files are required if your application performs JNDI lookups using a file system context.
总而言之,您需要包含以下 jar 文件:
com.ibm.mq.allclient.jar
jms.jar
fscontext.jar
providerutil.jar
有关详细信息,请参阅我对“Upgrade of Java 8 and MQ - NoClassDEfFoundError 的回答。
更新 2018-01-25
与次要错误相关:
Error: Response message: java.lang.IllegalStateException: QueueConnectionFactory expected, but got com.ibm.mq.jms.MQConnectionFactory
在以下回答中,Attila Repasi 解决了您收到的错误:
答案是:
Create a MQQueueConnectionFactory in MQExplorer instead of the
MQConnectionFactory you have now.
此外,在以下回答中,Attila Repasi 描述了如何使用 IBM MQ v8 配置 JMeter 并说明了在 MQ Explorer 中可以做什么。
您需要将所需的库放在 JMeter Classpath 下的某处或设置 user.classpath 属性 以指向它们所在的文件夹。
根据得到 IBM MQ classes for Java and JMS:
.\JavaSE:
com.ibm.mq.
allclient.jar
com.ibm.mq.traceControl.jar
fscontext.jar
jms.jar
providerutil.jar
JSON4J.jar
因此,您不仅需要 allclient.jar
,还需要 JavaSE
文件夹中的所有 jar。
连接 IBM - MQ 时出现 jmeter(jms 点对点)错误:
javax.naming.NoInitialContextException: Cannot instantiate class: com.sun.jndi.fscontext.RefFSContextFactory [Root exception is java.lang.ClassNotFoundException: com.sun.jndi.fscontext.RefFSContextFactory
需要帮助解决错误。仅供参考:com.ibm.mq.allclient.jar
添加到 lib 文件夹中,32 位 jdk 1.8
jms point-to-point configuration in jemeter
JNDI configuration in mq explorer
添加 jar(复制所有 MQ Jar(随完整 Websphere MQ 安装一起提供)并将它们放入 JMeter/Lib)后遇到新错误:
Error: Response message: java.lang.IllegalStateException: QueueConnectionFactory expected, but got com.ibm.mq.jms.MQConnectionFactory
绑定文件就位 (C:\Users*****\Downloads\apache-jmeter-3.3\apache-jmeter-3.3\JNDI-Directory)
根据 oracle post 你缺少 fscontext.jar
the ClassNotFoundException for com.sun.jndi.fscontext.RefFSContextFactory is solved by adding fscontext.jar to your classpath
您可以下载here并复制到JMeter lib文件夹
您没有说明您使用的是哪个版本的 IBM MQ jar 文件,但是 com.ibm.mq.allclient.jar 是在 IBM MQ v8 中引入的,因此您必须使用 v8 或 v9。
v9 知识中心页面“What is installed for IBM MQ classes for JMS”声明如下:
The fscontext.jar and providerutil.jar files are required if your application performs JNDI lookups using a file system context.
总而言之,您需要包含以下 jar 文件:
com.ibm.mq.allclient.jar
jms.jar
fscontext.jar
providerutil.jar
有关详细信息,请参阅我对“Upgrade of Java 8 and MQ - NoClassDEfFoundError 的回答。
更新 2018-01-25
与次要错误相关:
Error: Response message: java.lang.IllegalStateException: QueueConnectionFactory expected, but got com.ibm.mq.jms.MQConnectionFactory
在以下回答中,Attila Repasi 解决了您收到的错误:
答案是:
Create a MQQueueConnectionFactory in MQExplorer instead of the MQConnectionFactory you have now.
此外,在以下回答中,Attila Repasi 描述了如何使用 IBM MQ v8 配置 JMeter 并说明了在 MQ Explorer 中可以做什么。
您需要将所需的库放在 JMeter Classpath 下的某处或设置 user.classpath 属性 以指向它们所在的文件夹。
根据得到 IBM MQ classes for Java and JMS:
.\JavaSE:
com.ibm.mq.
allclient.jar
com.ibm.mq.traceControl.jar
fscontext.jar
jms.jar
providerutil.jar
JSON4J.jar
因此,您不仅需要 allclient.jar
,还需要 JavaSE
文件夹中的所有 jar。