问题描述
我正在使用 Mulesoft 实施 Loanbroker,但在发送请求时出现错误消息。我从 Postman 和 Mulesoft Anypoint Studio 收到以下错误消息:
ERROR 2021-06-27 15:20:51,133 [[MuleRuntime].uber.04: [loanbroker].LoanbrokerFlow_Gr7.cpu_LITE @254be3ee] [processor: LoanbrokerFlow_Gr7/processors/0; event: 7e49f560-d74a-11eb-b598-b66921dc5aa5] org.mule.runtime.core.internal.exception.OnErrorPropagateHandler:
********************************************************************************
Message: "You called the function 'Value Selector' with these arguments:
1: Binary ("" as Binary {base: "64"})
2: Name ("amount")
But it expects one of these combinations:
(Array,Name)
(Array,String)
(Date,Name)
(DateTime,Name)
(LocalDateTime,Name)
(LocalTime,Name)
(Object,String)
(Period,Name)
(Time,Name)
1| payload.amount
^^^^^^^^^^^^^^
Trace:
at main (line: 1,column: 1)" evaluating expression: "payload.amount".
Element : LoanbrokerFlow_Gr7/processors/0 @ loanbroker:bi_gruppe7.xml:34 (copy_of_setAmount)
Element DSL : <set-variable value="#[payload.amount]" doc:name="copy_of_setAmount" doc:id="cbcca557-1a69-4cf2-80b1-64333175589d" variableName="amount"></set-variable>
Error type : MULE:EXPRESSION
FlowStack : at LoanbrokerFlow_Gr7(LoanbrokerFlow_Gr7/processors/0 @ loanbroker:bi_gruppe7.xml:34 (copy_of_setAmount))
(set debug level logging or '-Dmule.verbose.exceptions=true' for everything)
********************************************************************************
有人可以帮我吗?
谢谢
解决方法
您可能在来自 Postman 的 HTTP 请求中发送了一些正文,但 Mule 不知道如何读取它。也许您没有在请求中使用 Content-Type 标头让 DataWeave 知道它是 JSON (application/json) 或 XML (application/XML)。 确保您发送的内容类型正确。
,这通常发生在尝试访问有效负载(如 json)的内部值但传入的有效负载实际上不是 json 类型时。
可以检查有效负载 mediaType
,然后尝试访问金额以避免值选择器异常。
%dw 2.0
output application/java
---
if( !isEmpty(payload) and payload.^mediaType contains "json" )
payload.amount
else
read(payload,"application/json").amount //best effort
建议创建一个单独的 dataweave 文件,如 dwl/set-amount.dwl
并引用它。