在Mule插件的Transform Message中使用p函数

问题描述

我在Project-A中添加一个作为依赖项的dependency子插件,在m子插件中,我定义了一个转换消息,其中我使用p('property_name')引用了插件中定义的属性文件中的值。但这引发了错误。是否可以在Mule插件中定义p()并将Mule插件作为依赖项添加到Project中,并期望它能正常工作。如果没有,那可以解决吗?

解决方法

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

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

,

与其使用Transform(DataWeave)操作内部的属性,不如使用属性占位符语法(即"${property.name}")在调用转换之前将一个变量设置为该属性。

即使可行,您也应该重新考虑应用程序的设计。使用插件中定义的属性可能会与应用程序定义的属性发生冲突。

,

有趣的事情-甚至Mule都是一种“解释”方法-它在处理内容后立即静态执行。

查看日志,了解如何加载和实例化应用程序-您将看到按顺序加载的模块,流程和插件。通常,它基于Mule模块的字母顺序。

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

简而言之-如果订购不当,请查找作为模块模块登录并重命名XML文件。

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