【问题标题】:MQ initial context class in MQ series 9MQ 系列 9 中的 MQ 初始上下文类
【发布时间】:2017-09-13 06:21:06
【问题描述】:

我在 MQ 队列管理器中有 JNDI 上下文,我的独立 Java 客户端能够使用初始上下文类 com.ibm.mq.jms.context.WMQInitialContextFactory 进行查找,它与 MQ 8 之前版本的 MQ 客户端 jar 一起使用。它还具有 @987654322 @ 在我的类路径中。

对于 MQ 8 和 9,我尝试在我的类路径中使用可重定位的 jar com.ibm.mq.allclient.jarcom.ibm.mq.traceControl.jar,但 JNDI 查找失败。如果我将旧的 mqcontext.jar 添加到类路径中,则会出现以下错误。

 javax.naming.NamingException: Caught an MQ Exception: com.ibm.msg.client.jms.DetailedMessageFormatException: JMSCC0053: An exception occurred deserializing a message, exception: 'java.io.InvalidClassException: com.ibm.msg.client.wmq.common.WMQConnectionName; local class incompatible: stream classdesc serialVersionUID = 3226780381239434112, local class serialVersionUID = -2174857328193645055'.

【问题讨论】:

  • 答案有帮助吗?如果没有,如果您有任何问题,请告诉我。
  • 请问我在任何地方都找不到 com.ibm.mq.jms.context.WMQInitialContextFactory,我使用的是 IBM MQ 版本 7.5.0.1,我在哪里可以找到它或找到 mqcontext.jar?

标签: java ibm-mq


【解决方案1】:

对于 IBM MQ Classes for JMS,您可以在知识中心页面“What is installed for IBM MQ classes for JMS”上找到所需的文件列表:

可重定位的 JAR 文件
在企业内部,可以将以下文件移动到需要为 JMS 运行 IBM MQ 类的系统中:

  • com.ibm.mq.allclient.jar
  • com.ibm.mq.traceControl.jar
  • jms.jar
  • fscontext.jar
  • providerutil.jar

【讨论】:

    【解决方案2】:

    com.ibm.mq.jms.context.WMQInitialContextFactory

    我强烈建议您不要将 MQ 队列管理器用作 MQ JNDI 的资源持有者。您应该使用基于文件的 MQ JNDI 或基于 LDAP 的 MQ JNDI。

    我上次检查时,使用 WMQInitialContextFactory 不允许使用 MQ 客户端安全出口和/或 TLS/SSL。因此,您必须在没有任何安全性的情况下连接到队列管理器。糟糕,糟糕的主意。

    随着黑客攻击每天都在发生,私人/机密信息被转储到网络和/或暗网,每个队列管理器都应该被严格锁定。

    【讨论】:

    • 谢谢罗杰。不幸的是,我不是我工作地点的决策者。我现在通过使用旧的 MQ 7 jar 解决了这个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-10
    • 2016-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-01
    • 2018-06-05
    相关资源
    最近更新 更多