Java 实例化MQ ConnectionFactory对象时出错

Java 实例化MQ ConnectionFactory对象时出错,java,tomcat,spring-boot,ibm-mq,mq,Java,Tomcat,Spring Boot,Ibm Mq,Mq,首先,我想为我在这里写的有点杂乱无章而道歉。我正在编写一个spring启动应用程序来读取MQ队列中的消息。但是,我在尝试创建MQXAConnectionFactory对象的实例时遇到异常。我意识到这是因为MQXAConnectionFactory扩展了com.ibm.msg.client.jms.admin.jmsjndConnectionFactoryImpl 代码片段 @Value("${ems.mq.cf.hostName}") String mqHostName;

首先,我想为我在这里写的有点杂乱无章而道歉。我正在编写一个spring启动应用程序来读取MQ队列中的消息。但是,我在尝试创建
MQXAConnectionFactory
对象的实例时遇到异常。我意识到这是因为MQXAConnectionFactory扩展了com.ibm.msg.client.jms.admin.jmsjndConnectionFactoryImpl

代码片段

    @Value("${ems.mq.cf.hostName}")
    String mqHostName;
    @Value("${ems.mq.cf.port}")
    int mqPort;
    @Value("${ems.mq.cf.queueManager}")
    String mqQueueManager;
    @Value("${ems.mq.cf.channel}")
    String mqChannel;

    private ConnectionFactory mqJmsConnectionFactory() throws JMSException{

    try {

    MQXAConnectionFactory factory=new MQXAConnectionFactory();
    factory.setHostName(mqHostName);
    factory.setPort(mqPort);
    factory.setQueueManager(mqQueueManager);
    factory.setChannel(mqChannel);
    factory.setTransportType(WMQConstants.WMQ_CM_CLIENT);
    return factory;
    }
    catch (JMSException e){
        throw new RuntimeException(e);
    }

}
问题是
com.ibm.msg.client.jms.admin
包不存在于我在类路径上设置的任何jar上。IBM网站上建议的解决方案(内容如下)也没有帮助

The type com.ibm.msg.client.jms.admin.JmsJndiDestinationImpl
cannot be resolved. It is indirectly referenced from required .class files.
局部修复

 Import the com.ibm.msg.client.jms.internal from
    wmq.jmsra.rar and add it to the build path.
    You can find the rar file under <WPS_HOME>\lib\WMQ\ra

任何有关这方面的帮助都将不胜感激。我终于解决了这个问题。 使用版本6或更早的com.ibm.mq.jar&com.ibm.mqims.jar

然后添加看来非常重要的
connector.jar
。我从mqseries.net获得了这个解决方案来添加连接器jar

gaya3发布

请在构建路径中添加connector.jar、jta.jar(connector.jar在那里)(看起来connector.jar可能已损坏或没有所有访问权限)

检查是否有访问权限以执行此操作

以下jar文件必须位于类路径上

  • com.ibm.mq.jar
  • com.ibm.mqims.jar
  • connector.jar(重要)
  • jms.jar
  • 1. mqjms-7.0.1.0.jar, 
    2. ibm-mq-7.0.1.0.jar
    3. client.osgi.jms.jar