【发布时间】:2017-05-17 18:41:51
【问题描述】:
在使用 MULE 时,我将从 HTTP 请求接收到的有效负载转换为 json 对象并将其映射到变量。万一,当我没有传递其中一个变量时,我会在评估表达式时遇到异常。
<flow name="test">
<http:listener config-ref="HTTP_Listener_Configuration" path="/" doc:name="HTTP"/>
<json:json-to-object-transformer returnClass="java.lang.Object" doc:name="JSON to Object"/>
<set-variable variableName="a" value="#[message.payload.a]"
<set-variable variableName="b" value="#[message.payload.b]"
<logger message="a: #[a]" level="INFO" doc:name="Logger"></logger>
</flow>
有效载荷时
{
"a": "val1",
"b": "val2"
}
应用程序运行良好。
但是如果payload是
{
"b": "val2"
}
我得到以下异常:
ERROR [].HTTP_Listener_Configuration.worker.01] org.mule.exception.DefaultMessagingExceptionStrategy:
********************************************************************************
Message : Execution of the expression "a" failed. (org.mule.api.expression.ExpressionRuntimeException).
Payload : {b="val2"}
Payload Type : java.util.LinkedHashMap
Element : /test/processors/10 @ test:test.xml:47 (Logger)
Element XML : <logger message="a: #[a]" level="INFO" doc:name="Logger"></logger>
--------------------------------------------------------------------------------
Root Exception stack trace:
[Error: unresolvable property or identifier: a]
[Near : {... a ....}]
我可以检查变量'a' 的值并将其附加为NULL 吗?
附:我想使用此变量作为有效载荷中的参数之一发送其他一些 http 请求。
【问题讨论】:
标签: json mule runtime-error mule-component