IBM MQ v9.2.0 REST API 支持纯文本格式(UTF-8 编码字符串)消息。
如 here 所述,可通过 IBM MQ 控制台获得 REST 消息传递 API 的 Swagger 文档
有关 MQ REST 消息传递的更多信息可以在 IBM MQ 知识中心here 中找到,并且有一个简单的 REST 教程可用here。
您似乎已连接到在您的 docker 容器中运行的 IBM MQ 控制台。如果您查看您的 docker run 命令,您应该会看到端口 1414 已分配用于消息传递,端口 9443 已分配给控制台。
正如@JoshMc 所说,控制台的“创建消息”功能旨在使用来自用户的输入作为有效负载将简单消息放入队列。仅支持 MQSTR 消息类型,并且没有从文件上传消息数据的选项。
如果您想使用 GUI 来放置和获取使用不同消息类型的消息,请查看 GitHub 上的 rfhutil 工具here
您还可以使用 MQ API 来处理不同的负载类型。这个GitHub Repo 提供了一系列语言的示例作为起点。
tutorial 提供了一个使用字符串的简单 JMS 应用程序的工作示例。可以更改 JmsPutGet.java 应用程序以发送和接收不同的消息类型,例如字节消息。这是通过将 JMS 消息类型从 javax.jms.TextMessage 更改为 javax.jms.BytesMessage 来实现的,如下所示:
添加以下导入
import javax.jms.BytesMessage;
import java.nio.charset.Charset;
更改生产者以使用字节消息
BytesMessage bytesMessage = context.createBytesMessage();
String payload = "Your lucky number today is " + uniqueNumber;
byte[] bytesPayload = payload.getBytes(Charset.forName("UTF-8"));
bytesMessage.writeBytes(bytesPayload);
并更改消费者以使用字节消息
consumer = context.createConsumer(destination);
byte[] receivedBytesMessage = consumer.receiveBody(byte[].class, 15000); // in ms or 15 seconds