将消息从Java放入队列

时间:2012-05-24 12:23:54

标签: java mq

我试图从我的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。 环境变量设置正确。 有人可以指导我吗?

2 个答案:

答案 0 :(得分:1)

问题不在您的Java代码中。不满意的链接错误意味着找不到本机库(Windows中的.dll,Unix中的.so)。它在环境变量中丢失或未引用:PATH(Windows)或LD_LIBRARY_PATH或LIBPATH等,具体取决于它所在的操作系统。

googling may give you a few ideas

答案 1 :(得分:0)

这里的问题是缺少LIBRARY PATH。将LD_LIBRARY_PATH设置为“MQ_INSTALLATION_DIR”/ java / lib(对于Unix)