说明:此操作代码要运行在安装IBM MQ的机器上
导入maven依赖
<dependency>
<groupId>com.ibm.mq</groupId>
<artifactId>com.ibm.mq.allclient</artifactId>
<version>9.1.0.0</version>
</dependency>
2.代码示例
package com.ibmmq.demo;
import com.ibm.mq.*;
import com.ibm.mq.constants.MQConstants;
import com.ibmmq.util.mqutil.MqDemo;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class DemoApplicationTests {
private static final String qManager = "QM_1";
private static final String qName = "Q1";
@Test
void contextLoads() {
}
@Test
void localMqTest() throws MQException {
try{
//1.创建队列管理器
MQQueueManager qMstr = new MQQueueManager(qManager);
//2.创建队列链接
//设置打开队列时的选项
int openOptions = MQConstants.MQOO_INPUT_AS_Q_DEF | MQConstants.MQOO_OUTPUT;
MQQueue queue = qMstr.accessQueue(qName, openOptions);
//3.定义一个消息对象
MQMessage sendMsg = new MQMessage();
sendMsg.writeUTF("Hi,我是一条消息");
//4.设置放入消息时的选项
MQPutMessageOptions putMegOpt = new MQPutMessageOptions();
//5.放入消息
queue.put(sendMsg,putMegOpt);
//6.定义一个接受消息的对象
MQMessage rcvMesg = new MQMessage();
//7.设置获得消息时的选项
MQGetMessageOptions getMegOpt = new MQGetMessageOptions();
//8.获取消息
queue.get(rcvMesg, getMegOpt);
String msgText = rcvMesg.readUTF();
System.out.println("获取消息: " + msgText);
//9.关闭队列
queue.close();
//1.关闭队列管理器
qMstr.disconnect();
}catch (MQException ex){
System.out.println("An IBM MQ Error occurred : Completion Code " + ex.completionCode
+ " Reason Code " + ex.reasonCode);
ex.printStackTrace();
for (Throwable t = ex.getCause(); t != null; t = t.getCause()) {
System.out.println("... Caused by ");
t.printStackTrace();
}
} catch (java.io.IOException ex) {
System.out.println("An IOException occurred whilst writing to the message buffer: " + ex);
}
}
}