我是Camel的新手,正在寻找一个根据正文内容过滤JMS主题消息的选项。我研究了不同的过滤语言,如simple,OGNL,groovy等,但无法弄清楚如何将其应用于基于内容的过滤以下是我需要过滤的JMS msg/content的一个示例-
"created_at":"Wed Sep 11 14:48:38 EDT 2013","text":"habra que ir pensando en cambiar el iphone...","id":"377866287525138432"过滤条件应该是"text“或body()包含"iphone”(忽略大小写),类似于-
from("activemq:topic:MyTopic")
.filter().ognl(getRequest().getBody().???)
.to("file:/abc/?fileName=abcFile.txt&autoCreate=true&fileExist=Append")我们将非常感谢您的任何想法/建议。
谢谢!
发布于 2013-09-13 20:36:48
我建议花点时间阅读Camel文档,例如
既然你用的是OGNL,那就去读http://camel.apache.org/ognl.html吧--这里有一些例子。例如,请注意,OGNL脚本必须作为字符串参数提供,因此您的示例应该类似于:
.filter().ognl("getRequest().getBody().contains('iphone')")尽管它可能会更短
.filter().ognl("request.body.contains('iphone')")发布于 2014-05-05 22:30:50
您还可以尝试使用http://camel.apache.org/content-based-router.html进行基于内容的路由。如果您可以选择多个目的地来根据内容路由消息,这将有所帮助。
from("jms:topic:MyTopic") .choice() .when(body().contains('iphone')) .to("direct:b") .otherwise() .to("direct:d");
https://stackoverflow.com/questions/18750396
复制相似问题