Java 实例化MQ ConnectionFactory对象时出错
首先,我想为我在这里写的有点杂乱无章而道歉。我正在编写一个spring启动应用程序来读取MQ队列中的消息。但是,我在尝试创建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;
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文件必须位于类路径上
1. mqjms-7.0.1.0.jar,
2. ibm-mq-7.0.1.0.jar
3. client.osgi.jms.jar