在Mule插件中使用转换消息中的p()函数



我在Project-a中添加了一个mule插件作为依赖项。在mule插件中,我定义了一个转换消息,我使用p("property_name"(引用插件中定义的属性文件中的值。但它抛出了一个错误。是否可以在mule插件中定义p((,并将mule插件作为依赖项添加到项目中,并期望它能正常工作。如果没有,还有什么办法吗?

您可以尝试以下dataweave构造来检索转换中的属性值:

%dw 2.0
output application/java
---
{
myPropValue: Mule::p("my.property.name")
}

不要在Transform(DataWeave(操作中使用属性,而是在调用转换之前,使用属性占位符语法(即"${property.name}"(将变量设置为该属性。

即使这样做有效,您也应该重新考虑应用程序的设计。使用插件中定义的属性可能与应用程序定义的属性冲突。

有趣的事情-甚至骡子也有点"解释";方法——它一处理东西就静态地执行。

查看日志,了解应用程序是如何加载和实例化的——您将看到模块、流和插件按一定顺序加载。大多数情况下,它是基于Mule模块的字母顺序。

如果模块A使用模块B内部定义的属性,则它将为空,因为当加载A时,B还不存在,因此根本没有属性。

简而言之,如果顺序不适合您,请查看日志作为模块laded并重命名XML文件。

https://simpleflatservice.com/mule4/Properties.html

最新更新