问题描述
%dw 2.0
import * from dw::core::Binaries
output application/json
var userCredentials = vars.userCredentials.userName as String ++ ":" ++ vars.userCredentials.password as String
---
"Basic "++ toBase64(userCredentials as String)
Error [MULE:EXPRESSION] while running test 'get-authorization-token-test-success':"Cannot coerce Null (org.mule.weave.v2.model.values.NullValue$@799da78a) to String
1| %dw 2.0 import * from dw::core::Binaries output application/json var userCredentials = vars.userCredentials.userName as String ++ ":" ++ vars.userCredentials.password as String --- "Basic "++ toBase64(userCredentials as String)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Trace:
at ++ (line: 1,column: 89)
at ++ (line: 1,column: 129)
at main (line: 1,column: 136)" evaluating expression: "%dw 2.0 import * from dw::core::Binaries output application/json var userCredentials = vars.userCredentials.userName as String ++ ":" ++ vars.userCredentials.password as String --- "Basic "++ toBase64(userCredentials as String)".
解决方法
我假设问题是导致显示错误的原因。该错误实际上是自我描述的:您不能将空值与字符串连接起来。脚本的下划线部分指示问题的位置。问题似乎是变量 vars.userCredentials 为空或者它不包含名为 userName 的属性。您必须弄清楚为什么它以空值到达脚本并修复它。
,仔细检查存储在 vars.userCredentials 中的值。 当此值或其元素 userName 或 password 为空时,会出现此错误。 在您的数据编织中,您已将语句 vars.userCredentials.userName 编写为 String
它在运行时被作为空字符串 ==> 执行,因此 Mule 运行时引擎抛出一个错误。
- Mahesh Raja Vandyala