如何使用Apache Camel JXPath表达式语言设置Exchange正文

时间:2012-04-11 16:46:32

标签: apache-camel

我需要测试谓词对象是否与各种表达式语言的交换匹配。我需要知道我需要设置什么交换值才能验证谓词。

public void test() { 
   String expression="//orders/value>10"'; 
   CamelContext context = new DefaultCamelContext(); 
   Predicate predicate=new JXpathExpression(expression,boolean.class); 
   Exchange exchange = new DefaultExchange(context); 
   Message in = exchange.getIn(); 
   in.setBody(""); // how i need to set the message in exchange in order to evaluate it against predicate 
   exchange.setIn(in); 
   boolean check=predicate.matches(exchange); 
} 

对于JXPath,当我使用JXpath[//orders/value>10]打印时,谓词对象包含predicate.toString()

如何设置交换以便验证此表达式?

1 个答案:

答案 0 :(得分:2)

JXPath适用于java对象。因此,您必须在邮件正文中设置合适的对象。 如果你在那里设置的对象有o.getOrders()。getValue()并返回一个数值> 10然后谓词应该评估为真。