我正在将消息从Java代码发送到Websphere MQ Server,当我在MQ服务器上读取同一消息时,它显示为:

message<RFH >


下面是将消息发送到MQ服务器的代码:

private void sendMessage() throws Exception {
        ConnectionFactory cf1 = (ConnectionFactory) new InitialContext().lookup("java:comp/env/jms/wmqCF");

        // Lookup Queue resource from JNDI
        Queue queue = (Queue) new InitialContext().lookup("java:comp/env/jms/wmqQ1");
        Connection con = cf1.createConnection();

        // start the connection to receive message
        con.start();

        // create a queue session to send a message
        Session sessionSender = con.createSession(false, javax.jms.Session.AUTO_ACKNOWLEDGE);

        MessageProducer send = sessionSender.createProducer(queue);

        TextMessage msg = sessionSender.createTextMessage("Liberty Sample Message");

        // send a sample message
        send.send(msg);

        if (con != null)
            con.close();
        System.out.println("Send Message Completed");
    }


预期显示为:Liberty Sample Message

任何想法,我在这里想念的是什么?

谢谢。

最佳答案

并且,如果您使用另一个JMS程序检索消息,则消息数据将为“自由样本消息”。

您正在混合JMS和非JMS程序类型。


.lookup(“ java:comp / env / jms / wmqQ1”);


将“ TARGCLIENT”属性设置为MQ。即TARGCLIENT(MQ)

这样,消息数据将没有RFH2标头。

09-04 23:19
查看更多