Mule中DataWeave的资源属性不接受流变量

Mule中DataWeave的资源属性不接受流变量,mule,classpath,esb,dataweave,Mule,Classpath,Esb,Dataweave,我的dataweave代码配置xml如下: <dw:transform-message doc:name="Transform Message"> <dw:set-payload resource="#[flowVars['sample']]" /> </dw:transform-message> 有人能帮助我如何读取资源中的变量吗?您不能这样做,但可以使用MEL函数在一组有效负载内评估dataweave脚本 #[dw(<dw-script

我的dataweave代码配置xml如下:

<dw:transform-message doc:name="Transform Message">
    <dw:set-payload  resource="#[flowVars['sample']]" />
 </dw:transform-message>

有人能帮助我如何读取资源中的变量吗?

您不能这样做,但可以使用MEL函数在一组有效负载内评估dataweave脚本

#[dw(<dw-script-string>)]
#[dw(<dw-script-string>, <out-content-type>)]
如果不指定内容类型,则默认为java

因此,它最终将成为:

<set-payload value="#[dw(<dw-script-string>)]" doc:name="Set Payload"/>

我在使用Mule 3.9.0的anypoint studio中也遇到了同样的问题 我必须使用下面的指南更正anypoint studio中的java库

右键单击项目 从关联菜单中选择属性 在项目属性页面上,选择java构建路径 在java构建路径中,单击库 选择添加库->单击JRE系统库 选择alternate JRE并浏览到要添加到项目中的JDK
这将解决您的问题

谢谢您的回复。我已经按照您的建议尝试使用dw函数。我正在使用的集合有效负载中的值如下:[dw payload map{First:$.First Name,number:$.Age,Last:$.Last Name,Date:$.DOB},application/csv],但它在尝试保存xml时抛出了一些错误。[错误:未知类或非法语句:org.mule.mvel2。ParserContext@2689a2][近:{…dwpayload map{…}]^[第1行第16列]它现在正在工作。我已将脚本设置为字符串。我能否在有效负载之前添加输入和输出指令?因为当我尝试添加时,它会引发错误。错误为:无效输入0%,预期版本为Minor、wsnoeol或eol
#[dw(<dw-script-string>)]
#[dw(<dw-script-string>, <out-content-type>)]
<set-payload value="#[dw(<dw-script-string>)]" doc:name="Set Payload"/>