开发者社区> 问答> 正文

activeMQ无法发送topic消息

activeMQ的时候发现一个很奇怪的问题,发送queue消息时能正常发送和接收,但是如果我换成topic的话,一直收不到消息,也不报错,开始不知道为什么,后来用BrokerService.getAdminView().getTotalMessageCount(),监测发现queue的时候有消息数目,但topic没有,不知道为什么,贴上代码先吧,求大神解释!!!!!

 
public static void send() {
        Connection conn = null;
        try {
            conn = factory.createConnection();
 
            Session session = conn.createSession(false,
                    Session.AUTO_ACKNOWLEDGE);
            Destination des = null;
            // Destination
            //des = session.createQueue("myQueue");
                des = session.createTopic("topictest.messages");
            conn.start();
            MessageProducer producer = session.createProducer(des);
            producer.setDeliveryMode(DeliveryMode.PERSISTENT);
            TextMessage msg = session.createTextMessage();
            msg.setText("测试");
            producer.send(msg);
        } catch (JMSException e) {
            e.printStackTrace();
        } finally {
            System.out.println("-----消息发送完毕!");
            if (conn != null) {
                try {
                    conn.stop();
                    conn.close();
                } catch (JMSException e) {
                    e.printStackTrace();
                }
            }
        }
 
    }
 

展开
收起
爵霸 2016-06-15 09:24:02 3684 0
1 条回答
写回答
取消 提交回答
  • 改成监听试试,topic本来就是发布/订阅模型

     Topic topic= new ActiveMQTopic("test"); 
             Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); 
             MessageConsumer comsumer1 = session.createConsumer(topic); 

    然后,注册监听就行了

    2019-07-17 19:38:40
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
消息队列kafka介绍 立即下载
Rocket MQ 使用排查指南 立即下载
低代码开发师(初级)实战教程 立即下载