如何复现Mule中Failed parsing field: content表达式运行时异常?
如何复现Mule中该函数调用类型不匹配错误
错误本质
这个错误属于DataWeave表达式的参数类型/数量不匹配问题:你调用的匿名函数期望接收3个参数(任意类型、字符串、对象),但实际仅传入2个参数,且第二个参数为null,完全不符合函数的参数要求。
复现步骤
- 在Mule中创建一个GET请求API,路径配置为
./status/{orderId}(orderId作为路径参数) - 编写DataWeave脚本,定义一个要求3个参数的匿名函数,示例:
var processOrderStatus = (anyVal, strParam, objParam) -> { statusDetail: "Order " ++ anyVal ++ " - " ++ strParam ++ " - " ++ objParam.status } - 在API的处理逻辑中,调用这个函数时仅传入2个参数,且第二个参数为null,示例:
processOrderStatus(attributes.orderId, null) - 发送请求
GET ./status/123456触发API执行,此时日志中就会出现你遇到的UnexpectedFunctionCallTypesException错误
补充说明
当函数调用时的参数数量、类型与定义不匹配时,DataWeave就会抛出这类异常。你遇到的场景里,既少传了一个Object类型的参数,又把要求为String的第二个参数传成了null,双重触发了参数校验失败。
内容的提问来源于stack exchange,提问作者Indranisgt
相关产品推荐
相关产品推荐

