【问题标题】:java.lang.NoClassDefFoundError: com/ibm/mq/MQExceptionjava.lang.NoClassDefFoundError: com/ibm/mq/MQException
【发布时间】:2012-12-02 15:02:17
【问题描述】:

这和之前的问题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 。你能提出什么问题吗?根据之前的回答,我应该也安装客户端吗?

【问题讨论】:

    标签: ibm-mq


    【解决方案1】:

    您需要查看 WMQ v7.0.1.* 的 WMQ 使用 Java 手册,因为您缺少 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

    【讨论】:

      【解决方案2】:

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

      所以这应该归结为一个鉴别诊断的案例。分而治之。

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多