在 Mule 4 中使用 Dataweave 将 base64 转换为 byte[]

Lea*_*ner 2 salesforce netsuite dataweave mulesoft

使用 Mulesoft 从 Salesforce 获取 PDF 附件为 base64 格式,如下所示:toBase64(payload as Binary)

但是当将相同的有效负载作为文件内容发送到 NetSuite 时,会出现错误。发送为: write(fromBase64(acc.Body as String) as Binary,"application/octet-stream" )

错误:无法将“org.mule.weave.v2.io.ByteArraySeekableStream”类型的属性值转换为属性“content”所需的类型“byte[]”;嵌套异常是 java.lang.IllegalArgumentException:无法将“org.mule.weave.v2.io.ByteArraySeekableStream”类型的值转换为属性“content[0]”所需的类型“byte”:PropertyEditor [org.springframework.beans. propertyeditors.CustomNumberEditor] 返回了“org.mule.weave.v2.io.ByteArraySeekableStream”类型的不适当值。

任何想法如何将 base64 转换为 byte[] ?

mac*_*val 5

您可以使用class元数据提示让 data weave java writer 知道您希望二进制表示为 byte[]

 output application/java
 ---
 fromBase64(acc.Body as String) as Binary {class: "byte[]"}
Run Code Online (Sandbox Code Playgroud)