Jms 消费者接收MapMessage不显示任何内容

Jms 消费者接收MapMessage不显示任何内容,jms,activemq,message-queue,Jms,Activemq,Message Queue,您好,我在ActiveMQ中遇到了一个奇怪的问题(对我来说)。我的代码不会产生错误,但不会显示任何内容 生产商代码: public void sendMapMessageTopic(String topicName) throws Exception { try { initConnectionTopic(topicName); mapMessage = session.createMapMessage();

您好,我在ActiveMQ中遇到了一个奇怪的问题(对我来说)。我的代码不会产生错误,但不会显示任何内容

生产商代码:

public void sendMapMessageTopic(String topicName) throws Exception {
        try {
            initConnectionTopic(topicName);
            mapMessage = session.createMapMessage();
            mapMessage.setIntProperty("Age", 24);
            mapMessage.setStringProperty("Full Name", "Konstantinos Drakonakis");
            mapMessage.setStringProperty("Height", "178cm");

            List<String> data = new ArrayList<String>();
            data.add("Company");
            data.add("Project");
            mapMessage.setObject("data", data);

            Map<String, Object> specs = new HashMap<String, Object>();
            specs.put("data", data);
            mapMessage.setObject("specs", specs);
            producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
            producer.send(mapMessage);
        } catch (Exception e) {
            System.out.println("Exception while sending map message to the queue" + e.getMessage());
            throw e;
        } finally {
            if (connection != null) {
                connection.close();
                if (session != null) {
                    session.close();
                }
            }
        }
    }
生产商的主要方法:

public static void main(String[] args) {
        //connect to the default broker url
        ActiveMQQueueSender sender = new ActiveMQQueueSender("tcp://localhost:61616", "admin", "admin");
        try {
            sender.sendMapMessageTopic("Map Message Topic");
        } catch (Exception ex) {
            System.out.println("Exception during" + ex.getMessage());
        }
    }
消费者的主要方法:

public static void main(String[] args) {
        ActiveMQQueueReceiver receiver = new ActiveMQQueueReceiver("tcp://localhost:61616", "admin", "admin");
        try {
            receiver.startReceivingMapMessageTopic("Map Message Topic");
        } catch (Exception ex) {
            System.out.println("Exception during receival in main class" + ex.getMessage());
        }
    }

但我还是一无所获。有什么想法吗?

在生成消息之前,您的消费者是否正在运行?我的制作人每5秒发送一条消息,自从我将System.in.read()放入后,客户端一直在接收消息;但仍然没有显示任何消息检查您的web控制台或JMX以查看代理端发生了什么。为异常侦听器等添加更多调试到您的程序中。因此,在我的web控制台中,不是调试程序吗?消息显示得很好…我设法通过从使用者中删除毫秒来修复它。receive()方法……无论如何,感谢您抽出时间
public static void main(String[] args) {
        ActiveMQQueueReceiver receiver = new ActiveMQQueueReceiver("tcp://localhost:61616", "admin", "admin");
        try {
            receiver.startReceivingMapMessageTopic("Map Message Topic");
        } catch (Exception ex) {
            System.out.println("Exception during receival in main class" + ex.getMessage());
        }
    }