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

在Mule插件的转换消息中使用p()函数,mule,dataweave,anypoint-studio,mule4,Mule,Dataweave,Anypoint Studio,Mule4,我在我的项目-a中添加了一个mule插件作为依赖项,在mule插件中我定义了一个转换消息,其中我使用p('property_name')引用插件中定义的属性文件中的值。但这是一个错误。是否可以在mule插件中定义p(),并将mule插件添加为项目中的依赖项,并期望其正常工作。如果没有,是否有解决方法?您可以尝试以下dataweave构造来检索转换中的属性值: %dw 2.0 output application/java --- { myPropValue: Mule::p("my

我在我的项目-a中添加了一个mule插件作为依赖项,在mule插件中我定义了一个转换消息,其中我使用p('property_name')引用插件中定义的属性文件中的值。但这是一个错误。是否可以在mule插件中定义p(),并将mule插件添加为项目中的依赖项,并期望其正常工作。如果没有,是否有解决方法?

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

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


在调用转换之前,使用属性占位符语法(即
“${property.name}”
)为属性设置一个变量,而不是在转换(DataWeave)操作中使用属性


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

有趣的是,即使Mule也是一种“解释”方法,它在处理内容时也会静态地执行

查看您的日志应用程序是如何加载和实例化的-您将看到模块、流和插件以某种顺序加载。它主要基于Mule模块的字母顺序

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

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


你好。您是否正在使用XMLSDK构建插件?使用具有默认值的全局连接属性,而不是将具有属性的文件放入插件中,怎么样?或者您是否将应用程序打包为插件以在另一个应用程序中重用配置?我将应用程序打包为插件以在另一个应用程序中重用配置我在插件中有一个mule插件plugin有一个转换消息,在我使用p('property_name')的转换消息中,这个'property_name'是在mule plugin的属性文件中定义的。现在,我将此mule插件作为依赖项添加到我的Project-a中。现在,当我调试Project-a时,当控件转到mule插件的流时,p('property_name')被解析为null。您是否可以尝试在Project-a中定义属性值,并查看它是否按预期解析?如果解析正确,则需要进行进一步分析,以了解为什么不从插件加载属性。一个问题:是否可以让用户通过连接器或在操作级别设置此属性?