云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

微软云_网站建设的过程_免费申请

小七 141 0

微软云_网站建设的过程_免费申请

导言

在研究CPI发展的过程中,你不可避免地会遇到Camel的简单表达语言。无论您是否有意识地使用它,它的存在在大多数CPI集成流中都很普遍,在contentmodifier、Router等元素中。如果您还没有认识到它,那么任何使用${}的动态占位符本质上都是一个简单的表达式。

了解Morten Wittrock的HCI中的Camel简单表达式语言,正如标题所示,这是了解Simple的一个极好的读物。

Simple满足Groovy

而Simple满足了CPI中的许多简单需求,永久免费自助建站平台,企业信息化应用系统,如果你需要更多的肌肉力量,Groovy脚本仍然是一种方法。

但是如果你想使用Groovy并且仍然利用Simple中已有的一些内置表达式呢。SimpleBuilder是一个基于Java的API,是Camel框架的一部分,可用于计算简单表达式。

使用API最直接的方法是首先实例化SimpleBuilder对象,提供要计算的表达式。

上面的示例使用${camelId}检索CamelContext的名称。

随后,表达式被求值,值以字符串的形式返回。

非常简单(没有双关语的意思),不是吗?

不完全是–注意evaluate()方法需要一个交换对象作为输入之一。在CPI Groovy脚本(下面的示例)中,您不能直接访问exchange,只能访问Message对象com.sap.gateway网关.ip.core.customdev.实用消息(也许你在这里读到过),您可能会注意到消息接口的实现类包含Exchange对象作为其实例属性之一。

不幸的是,它是一个私有实例属性,因此您不能对它做太多操作。

或者,您可以??!!

Groovy的一个奇怪之处是它忽略了访问修饰符属性。通俗地说,您可以从Groovy访问私有属性!

无论它是一个bug还是一个特性,我将留给您讨论和决定。

继续,这意味着我们可以通过下面的代码(使用Groovy的点符号)访问exchange:-

把它放在一起

好的,让我们把它放在一起,看看我们能从中得到什么。主要目的是计算一些内置的简单表达式,并将其填充到消息体中。

注意:简单表达式必须封装在单引号中,以便按原样传递。使用双引号将导致它们被解释为gstring(是的,美国高防云服务器,在Groovy中它们真的被称为gstring!)而不是简单的表达式

一旦我们执行了集成流程,下面的内容将显示在消息体中。注意,我们现在能够检索Camel ID、Exchange ID以及消息历史的详细信息。

结论

这说明了在CPI开发中将Simple和Groovy结合在一起的可能性。

这背后的最初驱动因素是需要访问Camel的消息历史。当集成流程变得更复杂时,遍历路径和故障点并不总是立即可见。这也可以通过一个带有相关简单表达式的内容修饰符和一个Groovy脚本来实现,返现卡,但是我想将它们组合在一个单独的脚本中走吧。幸运的是, 这样的定制开发不再是必需的,因为WebUI中的消息故障排除已经引入了类似的历史记录。

关于Groovy的bug/特性的最后一个注意事项-一如既往,大数据分析应用,明智地使用这种未记录的特性,特别是在生产环境中。