com.ibm.mq.jar问题

时间:2017-08-07 05:32:29

标签: java jms ibm-mq

我使用IBM MQ作为客户端来发送/获取消息。

尝试创建 MQMessage reqMsg= new MQMessage() 以获得异常时 的 java.lang.NoClassDefFoundError: Could not initialize class com.ibm.mq.internal.MQCommonServices

但是 com.ibm.mq.jar 在我的战争中可用。相同的代码在我的Windows机器上工作但不在linux(烟雾)服务器中工作。这将经常发生但是当我将现有的mq jar替换为用于重新开始工作的新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)我在战争中使用版本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。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

在IBM MQ v8之前,

com.ibm.mq.allclient.jar不存在,因此无法从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的SAME版本。