gpt4 book ai didi

java - 实例化 MQ ConnectionFactory 对象时出错

转载 作者:行者123 更新时间:2023-11-30 08:38:01 25 4
gpt4 key购买 nike

首先,我想为这里的一些杂乱无章的文章道歉。我正在编写一个 spring boot 应用程序来从 MQ 队列中读取消息。但是在尝试创建 MQXAConnectionFactory 对象的实例时出现异常。我已经意识到这是因为 MQXAConnectionFactory extends com.ibm.msg.client.jms.admin.JmsJndiConnectionFactoryImpl 造成的。

代码片段

    @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

但这对我来说不是一个选择,因为我使用的是本地 tomcat 服务器并且在我的类路径上有那个文件对我来说不是一个选择。

以下 ibm jar 在我的类(class)路径上

1. mqjms-7.0.1.0.jar, 
2. ibm-mq-7.0.1.0.jar
3. client.osgi.jms.jar

如有任何帮助,我们将不胜感激。合十礼

最佳答案

我终于找到问题了。使用版本 6 或更旧的 com.ibm.mq.jar 和 com.ibm.mqims.jar。

然后添加 connector.jar 这似乎是最重要的。我从 mqseries.net 得到了这个解决方案来添加连接器 jar

http://www.mqseries.net/phpBB2/viewtopic.php?t=40546

gaya3 发表

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

检查是否有访问权限

类路径中必须有以下 jar 文件

  1. com.ibm.mq.jar
  2. com.ibm.mqims.jar
  3. connector.jar(重要)
  4. jms.jar

关于java - 实例化 MQ ConnectionFactory 对象时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36795713/

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