首页 > 解决方案 > 使用指定编码向 WMB 发送 JMS 消息

问题描述

我正在尝试将消息发送到指定编码 = 273 的 WMB,但它只会更改属性和 MQRFH2 中的编码,而不是 MQMD(那里是 546)中的编码。我究竟做错了什么?

@Autowired
private JmsTemplate jmsTemplate;

private static final String SETTINGS_QUEUE = "REQUESTS/INTERNAL/GETSETTINGS";

public void sendSettingsMessage(String componentName, String componentVersion) {
    try {
        MQTopic topic = new MQTopic(SETTINGS_QUEUE);
        topic.setMQMDWriteEnabled(true);
        topic.setEncoding(WMQConstants.WMQ_ENCODING_NATIVE);
        jmsTemplate.send(topic, session -> {
            Message message = session.createMessage();
            message.setStringProperty("resource", "/settings/" + componentName + "." + componentVersion);
            message.setStringProperty("method", "GET");
            message.setStringProperty("source", "UI");
            message.setIntProperty(WMQConstants.JMS_IBM_ENCODING, WMQConstants.WMQ_ENCODING_NATIVE);
            message.setIntProperty(WMQConstants.JMS_IBM_MQMD_ENCODING, WMQConstants.WMQ_ENCODING_NATIVE);
            return message;
        });
    } catch (JMSException e) {
        throw new RuntimeException(e);
    }
}

标签: javajmsibm-mq

解决方案


推荐阅读