我试图从我的Java代码(在我的本地机器中)将消息放入队列。我收到了错误:
java.lang.UnsatisfiedLinkError:java.library.path中没有mqjbnd05。
这是我的代码:
qMgr = new MQQueueManager(qManager);
int openOptions = MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_OUTPUT ;
MQQueue queue = qMgr.accessQueue("Q1",openOptions);
MQMessage msg = new MQMessage();
msg.writeUTF("this is a test message");
MQPutMessageOptions pmo = new MQPutMessageOptions();
queue.put(msg, pmo);
MQMessage retrievedMessage = new MQMessage();
retrievedMessage.messageId = msg.messageId;
MQGetMessageOptions gmo = new MQGetMessageOptions();
queue.get(retrievedMessage, gmo);
String msgText = retrievedMessage.readUTF();
System.out.println("The message is: " + msgText);
queue.close();
qMgr.disconnect();
我的队列管理器是QM_FORD
,队列名称是Q1。侦听器端口是1414。
环境变量设置正确。
有人可以指导我吗?
答案 0 :(得分:1)
问题不在您的Java代码中。不满意的链接错误意味着找不到本机库(Windows中的.dll,Unix中的.so)。它在环境变量中丢失或未引用:PATH(Windows)或LD_LIBRARY_PATH或LIBPATH等,具体取决于它所在的操作系统。
答案 1 :(得分:0)
这里的问题是缺少LIBRARY PATH。将LD_LIBRARY_PATH设置为“MQ_INSTALLATION_DIR”/ java / lib(对于Unix)