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

时间:2012-12-14 15:28:24

标签: ibm-mq

这与之前的问题Exception in thread “main” 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。你能告诉我有什么问题吗?根据之前的回答,我是否应该安装客户端?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:3)

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

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

  1. 您是否成功运行了MQIVT程序或任何其他Java程序?如果你做了并强制例外,发生了什么?这告诉我们它是系统范围还是仅限于Broker的环境。
  2. 你在哪里导出CLASSPATH?在经纪人账户的.profile中?经纪人启动脚本?你确定它是否在经纪人的开始时被解析了?
  3. 为什么不使用Environment variables relevant to WebSphere MQ classes for Java中描述的/opt/mqm/java/bin/setjmsenv命令?在代理启动脚本中获取此脚本将捕获所有相关类,并以在升级到更高版本时一致工作的方式执行此操作。
  4. 您使用的是哪种JRE?如果它不是与Broker一起安装的版本,则可能是错误版本或来自不受支持的JRE提供商。
  5. 在发布的问题中没有足够的信息来提供自信的答案,但回答这些诊断问题应该有助于缩小范围或完全解决问题。