【问题标题】:Put message into queue from Java从Java将消息放入队列
【发布时间】:2014-12-15 21:04:03
【问题描述】:

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

【问题讨论】:

标签: java mq


【解决方案1】:

问题不在于您的 Java 代码。 Unsatisfied Link Error 表示未找到本机库(Windows 中的 .dll,Unix 中的 .so)。它要么丢失,要么未在环境变量中引用:PATH (Windows) 或 LD_LIBRARY_PATH 或 LIBPATH 等,具体取决于它所在的操作系统。

googling may give you a few ideas

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-10
      • 2021-06-09
      • 2013-09-12
      • 2023-04-07
      • 2015-02-02
      • 1970-01-01
      • 2023-04-07
      相关资源
      最近更新 更多