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

来源:互联网 发布:王家卫我爱你知乎 编辑:程序博客网 时间:2024/05/23 21:36

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 moreCaused by: java.lang.UnsatisfiedLinkError: no mqjbnd in java.library.pathat 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过来


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

原创粉丝点击