Jms ActiveMQ消息选择器
在我的消息队列中包含多条消息。我想按特定属性对其进行分组。它们都有一个自定义属性项id 这就是我现在想要的价值观:体育,电影 我这样做:Jms ActiveMQ消息选择器,jms,activemq,Jms,Activemq,在我的消息队列中包含多条消息。我想按特定属性对其进行分组。它们都有一个自定义属性项id 这就是我现在想要的价值观:体育,电影 我这样做: new MessageCreator() { ObjectMessage message = session.createObjectMessage(); message.setObject(data); message.setStringProperty("item-id", "sports"); } 此值也显示在属性的队列中 当我试图检索包含此属性
new MessageCreator() {
ObjectMessage message = session.createObjectMessage();
message.setObject(data);
message.setStringProperty("item-id", "sports");
}
此值也显示在属性的队列中
当我试图检索包含此属性的消息时,没有得到任何结果
初审:
Connection con = pc.createConnection();
Session sess =con.createSession(false,Session.AUTO_ACKNOWLEDGE);
AmqMessagesQueryFilter queryFilter = new AmqMessagesQueryFilter(pc, queue);
con.start();
String selector = "item-id = 'sports'";
List messages = queryFilter.query(selector);
但是列表是空的
二审:
Connection con = pc.createConnection();
Session sess = con.createSession(false, Session.AUTO_ACKNOWLEDGE);
AmqMessagesQueryFilter queryFilter = new AmqMessagesQueryFilter(pc, queue);
QueueBrowser queueBrowser = sess.createBrowser(queue,"item-id = 'sports'");
con.start();
List messages=Collections.list(queueBrowser.getEnumeration());
列表也是空的
我的错误是什么?我知道这已经太晚了,但这可能会为人们节省大量浪费的时间和沮丧 不要在消息选择器中使用破折号。如果需要,请使用下划线。
在这里查找标识符:我知道这太晚了,但这可能会为某人节省大量浪费的时间和沮丧 不要在消息选择器中使用破折号。如果需要,请使用下划线。
此处的查找标识符:在运行查询筛选器之前,您是否在队列中放置了一些消息?是和否。我在启动前尝试了队列中的一些消息,在启动时尝试了空队列。断开所有侦听器的连接,在队列中放入一些标题为“item id”且值为“sports”的邮件,然后再次运行筛选器。在运行查询筛选器之前是否在队列中放入了一些邮件?是和否。我在开始前尝试了队列中的一些邮件,在开始时尝试了空队列。断开所有侦听器,将一些标题为“item id”且值为“sports”的消息放入队列中,然后再次运行筛选器。