连接IBM MQ no mqjbnd in java.library.path错误解决方法

IBM MQ的学习已经有一段时间了,今天重新打开eclipse准备搭建一个系统跑MQ。结果就出现了以下症状:

com.ibm.msg.client.jms.DetailedJMSException: JMSFMQ6312: Java? MQI 中发生异常。
Java? MQI 已抛出描述该问题的异常。
请参阅链接的异常以获取进一步的信息。
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at com.ibm.msg.client.commonservices.j2se.NLSServices.createException(NLSServices.java:319)
	at com.ibm.msg.client.commonservices.nls.NLSServices.createException(NLSServices.java:233)
	at com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createV7ProviderConnection(WMQConnectionFactory.java:6889)
	at com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createProviderConnection(WMQConnectionFactory.java:6277)
	at com.ibm.msg.client.jms.admin.JmsConnectionFactoryImpl.createConnection(JmsConnectionFactoryImpl.java:285)
	at com.ibm.mq.jms.MQConnectionFactory.createCommonConnection(MQConnectionFactory.java:6233)
	at com.ibm.mq.jms.MQQueueConnectionFactory.createQueueConnection(MQQueueConnectionFactory.java:120)
	at com.ibm.mq.jms.MQQueueConnectionFactory.createConnection(MQQueueConnectionFactory.java:203)
	at org.springframework.jms.connection.SingleConnectionFactory.doCreateConnection(SingleConnectionFactory.java:365)
	at org.springframework.jms.connection.SingleConnectionFactory.initConnection(SingleConnectionFactory.java:305)
	at org.springframework.jms.connection.SingleConnectionFactory.getConnection(SingleConnectionFactory.java:283)
	at org.springframework.jms.connection.SingleConnectionFactory.createConnection(SingleConnectionFactory.java:224)
	at org.springframework.jms.support.JmsAccessor.createConnection(JmsAccessor.java:180)
	at org.springframework.jms.listener.AbstractJmsListeningContainer.createSharedConnection(AbstractJmsListeningContainer.java:413)
	at org.springframework.jms.listener.AbstractJmsListeningContainer.refreshSharedConnection(AbstractJmsListeningContainer.java:398)
	at org.springframework.jms.listener.DefaultMessageListenerContainer.refreshConnectionUntilSuccessful(DefaultMessageListenerContainer.java:907)
	at org.springframework.jms.listener.DefaultMessageListenerContainer.recoverAfterListenerSetupFailure(DefaultMessageListenerContainer.java:882)
	at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:1053)
	at java.lang.Thread.run(Thread.java:748)
Caused by: com.ibm.mq.jmqi.JmqiException: CC=2;RC=2495;AMQ8568: 找不到本机 JNI 库“'?'”。 对于客户机安装,这是预期的行为。 []
	at com.ibm.mq.jmqi.local.LocalMQ$1.run(LocalMQ.java:315)
	at java.security.AccessController.doPrivileged(Native Method)
	at com.ibm.mq.jmqi.local.LocalMQ.initialise_inner(LocalMQ.java:281)
	at com.ibm.mq.jmqi.local.LocalMQ.initialise(LocalMQ.java:244)
	at com.ibm.mq.jmqi.local.LocalMQ.<init>(LocalMQ.java:1258)
	at com.ibm.mq.jmqi.local.LocalServer.<init>(LocalServer.java:206)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at com.ibm.mq.jmqi.JmqiEnvironment.getInstance(JmqiEnvironment.java:681)
	at com.ibm.mq.jmqi.JmqiEnvironment.getMQI(JmqiEnvironment.java:615)
	at com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createV7ProviderConnection(WMQConnectionFactory.java:6881)
	... 16 more
Caused by: java.lang.UnsatisfiedLinkError: no mqjbnd in java.library.path
	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
	at java.lang.Runtime.loadLibrary0(Runtime.java:870)
	at java.lang.System.loadLibrary(System.java:1122)
	at com.ibm.mq.jmqi.local.LocalMQ.loadLib(LocalMQ.java:1202)
	at com.ibm.mq.jmqi.local.LocalMQ.loadLib(LocalMQ.java:1090)
	at com.ibm.mq.jmqi.local.LocalMQ$1.run(LocalMQ.java:290)
	... 28 more

解决方案:从上图可以看出是环境中缺少mqjbnd的dll文件

在系统中打印System.getProperty("java.library.path"),然后把对应的dll文件放进打印出来的路径中

如下图打印结果:

C:\Program Files (x86)\Java\jdk1.8.0_131\bin;
C:\Windows\Sun\Java\bin;
C:\Windows\system32;
C:\Windows;
C:/Program Files (x86)/Java/jre1.8.0_131/bin/client;
C:/Program Files (x86)/Java/jre1.8.0_131/bin;
C:/ProgramFiles(x86)/Java/jre1.8.0_131/lib/i386;.;%TNS_ADMIN%;E:\apache-maven-3.0.5\bin;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;%CATALINA_BASE%\bin;%CATALINA_HOME%\bin;
C:\Program Files (x86)\IBM\WebSphere MQ_2\bin; 
C:\ProgramData\Oracle\Java\javapath;
C:\Windows\system32;
C:\Windows;
C:\Windows\System32\Wbem;
C:\Windows\System32\WindowsPowerShell\v1.0\;E:\adt-bundle-windows-x86_64-20140624\sdk\platform-tools;E:\adt-bundle-windows-x86_64-20140624\sdk\tools;
C:\Program Files (x86)\MySQL\MySQL Server 5.5\bin;E:\eclipse-mar\eclipse-mars;;.

结果很显然了...在上面找到你的扫描路径,把文件添加进去,文件lib下、lib64下都应该有文件CV过来


庄生晓梦迷蝴蝶.....再见

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值