JMS消息选择器实现

时间:2011-03-09 10:13:34

标签: java java-ee jms

我需要验证javax.jms.Message是否匹配提供的选择器,即:。

Message msg = ...;
SomeSelectorMatcher matcher = new SomeSelectorMatcher(" someProp='someVal' and someProp2 >3 ... ");

if(matcher.matches(msg){
     //do sth
}else{
     //do sth else
}

是否有开箱即用的库?

2 个答案:

答案 0 :(得分:1)

我需要实现简单的测试框架,它可以模拟JMS行为,但使用同步方法。无论如何,我能够找到实现了消息选择器解析器的库 - http://openjms.sourceforge.net/

答案 1 :(得分:0)

消息选择器并不意味着允许这样做。为什么你需要这个?

我建议为它创建多个消费者。例如。从上面的例子我将创建两个消费者。一个有这个代码:

//do sth

的第二个
//do sth else

第一个有选择器,第二个选择器在逻辑上相反。

如果您确实需要在收到消息后进行过滤,则可以直接比较传入消息中的标题和属性。你甚至可以处理身体,而选择者则不能这样做。

http://download.oracle.com/javaee/5/tutorial/doc/bnceh.html

相关问题