【问题标题】:Mapping request payload to variable throws exception when not available for Mule当 Mule 不可用时,将请求有效负载映射到变量会引发异常
【发布时间】: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


    【解决方案1】:

    使用#[flowVars.a] 而不是#[a] 将导致null 而不是异常。

    【讨论】:

      【解决方案2】:

      您的实施有问题。在 http 侦听器之后,有效负载是原始响应 (JSON),无论如何都无法通过 #[payload.a] 或 #[payload['a']] 访问。您应该将 json 添加到 Object(将 json 转换为地图)。从这里你可以像这样引用它 #[payload['a']] 或 #[payload.a]

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-01
        • 1970-01-01
        相关资源
        最近更新 更多