Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在activemq中接收MapMessage_Java_Activemq - Fatal编程技术网

Java 在activemq中接收MapMessage

Java 在activemq中接收MapMessage,java,activemq,Java,Activemq,使用activeMq进行消息传输时,我遇到了如下所述的MapMessage: 它支持在映射结构中构造消息 我的问题是-如何从队列中接收MapMessage(而不是作为常规TestMessage) 发送消息在不同的教程(如)中有描述,但我没有遇到有关提取消息的示例。将返回消息,在您的情况下,该消息将属于MapMessage类型 只要这样做: MapMessage result = (MapMessage)requestor.request(message); 在更彻底地检查了这个问题之后,我认

使用activeMq进行消息传输时,我遇到了如下所述的MapMessage:

它支持在映射结构中构造消息

我的问题是-如何从队列中接收MapMessage(而不是作为常规TestMessage)

发送消息在不同的教程(如)中有描述,但我没有遇到有关提取消息的示例。

将返回消息,在您的情况下,该消息将属于MapMessage类型

只要这样做:

MapMessage result = (MapMessage)requestor.request(message);

在更彻底地检查了这个问题之后,我认为这是我的误解。 即使使用常规MessageConsumer,也可以接收MapMessage:

public MapMessage recieveMassage(){
    MapMessage m = null;
    try {
        Message message = consumer.receive();
        if (message instanceof MapMessage) {
            m = (MapMessage) message;
            logger.log(Level.FINEST, "message received:\n" + m.toString()+"\n");
        } else {
            System.out.println("Received: " + message);
            logger.log(Level.SEVERE, "Error message not of MapMessage type: "+ message);
        }
    } catch (Exception e) {
        logger.log(Level.SEVERE, "Error receiving a message: " + e.toString());
        e.printStackTrace();
    }
    return m;
}
问题在于我使用activeMq控制台发送的消息本身。显然,仅仅将消息体写为映射(例如:{a1=c1,a2=c2…})是不够的,并且该类型作为常规TextMessage相互渗透