com.ibm.mq.jar 的问题

Issue with com.ibm.mq.jar

我正在使用 IBM MQ 作为 put/get 消息的客户端。

当尝试创建 MQMessage reqMsg= new MQMessage() 时遇到异常 java.lang.NoClassDefFoundError: Could not initialize class com.ibm.mq.internal.MQCommonServices

但是 com.ibm.mq.jar 在我的 war.The 中可用,相同的代码在我的 windows 机器中工作但在 [=51= 中不工作](smoke) server.This 会经常发生,但是当我用新的 mq jar 替换现有的 mq jar 时,它曾经再次开始工作。但是这次没有运气。

下面的一些关键点可能有助于找出问题。

1) 我们手动将 jar 上传到版本 7.1.0.6 的工件中,因为服务器是 运行 相同的版本,因此客户端也需要有相同版本的 jar。

但是当我做 java -jar com.ibm.mq.jar 它显示如下

Name:        WebSphere MQ classes for Java
Version:     8.0.0.5
Level:       p800-005-160516.2
Build Type:  Production

2) 我的 war 到 put/get 消息 from/to 服务器中有以下 7.1.0.6 版本的罐子。

com.ibm.mq.allclient
com.ibm.mq.axis2
com.ibm.mq.commonservices
com.ibm.mq.headers
com.ibm.mq
com.ibm.mq.jmqi
com.ibm.mq.jms.Nojndi
com.ibm.mq.pcf
com.ibm.mq.soap
com.ibm.mq.tools.ras
com.ibm.mq.traceControl
com.ibm.mqjms

3) 我正在使用 jdk 1.8.

非常感谢任何帮助。

com.ibm.mq.allclient.jar 在 IBM MQ v8 之前不存在,因此它不能来自 v7.1.0.6 安装。

检查每个 jar 中的 MANIFEST.MF 文件以检查它来自哪个版本的 IBM MQ。

在 linux 上,您可以使用以下命令,用每个 jar 替换 jar 名称。

unzip -p com.ibm.mq.jar META-INF/MANIFEST.MF|grep Implementation-Version

您收到的错误可能是因为 jar 版本之间不匹配。验证所有 jar 文件都来自相同版本的 IBM MQ。