javax.naming.NoInitialContextException: Cannot instantiate class: com.sun.jndi.fscontext.RefFSContextFactory [Root exception is java.lang.ClassNotFoundException: com.sun.jndi.fscontext.RefFSContextFactory
需要帮助解决错误。仅供参考:{lib}文件夹中添加com.ibm.mq.allclient.jar
,32位jdk 1.8
jms point-to-point configuration in jemeter
JNDI configuration in mq explorer
添加jar后(复制所有MQ Jars(附带完整的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)
答案 0 :(得分:1)
您没有说明您使用的是哪个版本的IBM MQ jar文件,但是IBM MQ v8中引入了com.ibm.mq.allclient.jar,因此您必须使用v8或v9。
v9知识中心页面" What is installed for IBM MQ classes for JMS"声明如下:
如果您的应用程序使用文件系统上下文执行JNDI查找,则需要fscontext.jar和providerutil.jar文件。
总之,您需要包含以下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解决了您收到的错误:
JMeter 3.2 Point-to-Point configuration for IBM MQ 8 => Java Exception
答案说明:
在MQExplorer中创建MQQueueConnectionFactory而不是 你现在有MQConnectionFactory。
此外,在以下答案中,Attila Repasi描述了如何使用IBM MQ v8配置JMeter并解决在MQ Explorer中要执行的操作。
答案 1 :(得分:0)
根据generator,您缺少fscontext.jar
通过将fscontext.jar添加到类路径来解决com.sun.jndi.fscontext.RefFSContextFactory的ClassNotFoundException
您可以下载oracle post并将其复制到JMeter lib文件夹
答案 2 :(得分:0)
您需要在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
文件夹中的所有广告。