首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Camel消息过滤-正文内容过滤

Camel消息过滤-正文内容过滤
EN

Stack Overflow用户
提问于 2013-09-12 04:15:31
回答 2查看 3.7K关注 0票数 1

我是Camel的新手,正在寻找一个根据正文内容过滤JMS主题消息的选项。我研究了不同的过滤语言,如simple,OGNL,groovy等,但无法弄清楚如何将其应用于基于内容的过滤以下是我需要过滤的JMS msg/content的一个示例-

代码语言:javascript
复制
"created_at":"Wed Sep 11 14:48:38 EDT 2013","text":"habra que ir pensando en cambiar el iphone...","id":"377866287525138432"

过滤条件应该是"text“或body()包含"iphone”(忽略大小写),类似于-

代码语言:javascript
复制
from("activemq:topic:MyTopic")
.filter().ognl(getRequest().getBody().???)
 .to("file:/abc/?fileName=abcFile.txt&autoCreate=true&fileExist=Append")

我们将非常感谢您的任何想法/建议。

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2013-09-13 20:36:48

我建议花点时间阅读Camel文档,例如

  • http://camel.apache.org/languages.html
  • http://camel.apache.org/ognl.html

既然你用的是OGNL,那就去读http://camel.apache.org/ognl.html吧--这里有一些例子。例如,请注意,OGNL脚本必须作为字符串参数提供,因此您的示例应该类似于:

代码语言:javascript
复制
.filter().ognl("getRequest().getBody().contains('iphone')")

尽管它可能会更短

代码语言:javascript
复制
.filter().ognl("request.body.contains('iphone')")
票数 2
EN

Stack Overflow用户

发布于 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");

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18750396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档