gpt4 book ai didi

java - com.ibm.mq.jar 的问题

转载 作者:太空宇宙 更新时间:2023-11-04 11:15:07 28 4
gpt4 key购买 nike

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

尝试创建 MQMessage reqMsg= new MQMessage() 时出现以下异常java.lang.NoClassDefFoundError:无法初始化类 com.ibm.mq.internal.MQCommonServices

但是 com.ibm.mq.jar 在我的 war 中可用。相同的代码在我的 Windows 机器中工作,但在 linux(smoke) 服务器中不起作用。这种情况经常发生,但当我用新的 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 中,我有以下版本为 7.1.0.6 的 jar,用于从服务器发送消息/从服务器获取消息。

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。

关于java - com.ibm.mq.jar 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45539962/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com