MQ系列9中的MQ初始上下文类

时间:2017-09-12 03:04:45

标签: java ibm-mq

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

使用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'.

2 个答案:

答案 0 :(得分:0)

对于 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
  •   

答案 1 :(得分:0)

  

com.ibm.mq.jms.context.WMQInitialContextFactory

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

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

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