java.lang.NoClassDefFoundError:com/ibm/mq/MQException

Tan*_*anu 9 ibm-mq

这与线程"main"中的早期问题Exception类似java.lang.NoClassDefFoundError:com/ibm/mq/MQException

我在Linux中遇到了类似的问题.我安装了以下内容:

MQSeriesRuntime-7.0.1-3.x86_64.rpm
MQSeriesSDK-7.0.1-3.x86_64.rpm
MQSeriesJava-7.0.1-3.x86_64.rpm
MQSeriesServer-7.0.1-3.x86_64.rpm

当我创建一个执行组时,我得到:
java.lang.ClassNotFoundException: com.ibm.mq.MQException

我已经CLASSPATH使用这行代码设置:
export CLASSPATH=$CLASSPATH:/opt/mqm/java/lib/com.ibm.mq.jmqi.jar:/opt/mqm/java/lib/com.ibm.mq.jar:.

broker的版本是8.0.0.1,MQ的版本是7.0.1.3.你能告诉我有什么问题吗?根据之前的回答,我是否应该安装客户端?

Rog*_*ger 7

您需要查看WMQ使用Java手册(WMQ v7.0.1.*),因为您缺少MQ JAR文件.

对于MQ基础Java(不是MQ/JMS),您至少需要5个MQ JAR文件:

  • com.ibm.mq.jar
  • connector.jar
  • com.ibm.mq.jmqi.jar
  • com.ibm.mq.headers.jar
  • com.ibm.mq.commonservices.jar


T.R*_*Rob 3

不,您不需要安装客户端。另一个问题的回答是基于客户端 jar 的非标准安装。在这种情况下,您似乎拥有 WMQ 服务器的标准安装。除了您提供的 RPM 之外,还有 MQSeries JRE 的 RPM,尽管我不认为这是这里的问题。显然您有一些 JRE,可能是由 Broker 安装的。

所以这应该归结为鉴别诊断的情况。分而治之。

  1. 您是否成功运行了 MQIVT 程序或任何其他 Java 程序?如果你这样做并强制例外,会发生什么?这告诉我们它是系统范围的还是仅限于经纪人的环境。
  2. 在哪里导出 CLASSPATH?在经纪商账户的.profile 中?代理启动脚本?您确定它在代理启动时被解析吗?
  3. 为什么不使用与 Java 的 WebSphere MQ 类相关的环境变量/opt/mqm/java/bin/setjmsenv中描述的命令?在代理启动脚本中获取此脚本将捕获所有相关类,并以在升级到更高版本时一致工作的方式执行此操作。
  4. 您使用哪个 JRE?如果它不是随 Broker 一起安装的,则可能是版本错误或来自不受支持的 JRE 提供商。

发布的问题中没有足够的信息来提供可靠的答案,但回答这些诊断问题应该有助于缩小范围或完全解决问题。