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();
}
}
}
}
改成监听试试,topic本来就是发布/订阅模型
Topic topic= new ActiveMQTopic("test");
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
MessageConsumer comsumer1 = session.createConsumer(topic);
然后,注册监听就行了
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。