Jms ActiveMQ消息选择器

Jms ActiveMQ消息选择器,jms,activemq,Jms,Activemq,在我的消息队列中包含多条消息。我想按特定属性对其进行分组。它们都有一个自定义属性项id 这就是我现在想要的价值观:体育,电影 我这样做: new MessageCreator() { ObjectMessage message = session.createObjectMessage(); message.setObject(data); message.setStringProperty("item-id", "sports"); } 此值也显示在属性的队列中 当我试图检索包含此属性

在我的消息队列中包含多条消息。我想按特定属性对其进行分组。它们都有一个自定义属性项id

这就是我现在想要的价值观:体育,电影

我这样做:

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”的消息放入队列中,然后再次运行筛选器。