Mule-DataWeave inline中文问题

最近在使用MULE时候碰到一个问题, 使用Transform Message 控件 进行数据转换时候,某个字段为中文常量,直接使用出现了问题。配置如下。

如下面配置: "className": "板材" 为中文。

        <dw:transform-message doc:name="Transform Message">
            <dw:set-payload><![CDATA[
%dw 1.0
%input payload application/json
%output application/json encoding="GBK" 
---
{
    "collectionSize":payload.collectionSize,
    "totalQuantity":payload.totalQuantity,
    "totalWeight":payload.totalWeight,
     
        "className": "板材"
}]]></dw:set-payload>
        </dw:transform-message>

 mule xml提示出错。

错误提示如下:

Error in DW script: Invalid input """, expected flatten, typeOf, using, unzip, capitalize, avg, min, lower,
 upper, max, singularize, not, dasherize, ordinalize, camelize, trim, sizeOf, value, pluralize, sum or
 underscore

 

解决方法:

 
Mule-DataWeave inline中文问题
 
Mule-DataWeave inline中文问题
 

修改为如图所示。默认 source Code 是Inline的。改为使用File。

指定文件名。

dw的代码就会写入文件。二不是直接写到mule xml的文件里面了。

修改后的配置如下:

 

  <dw:transform-message doc:name="Transform Message">
            <dw:set-payload resource="classpath:a.dw.dwl"></dw:set-payload>
        </dw:transform-message>

 

在指定的dw文件中写入中文。流程就不会出错了。