Mule MEL检查NullPayload vs null

时间:2014-12-05 12:10:38

标签: mule

根据以下机票:https://www.mulesoft.org/jira/browse/MULE-6427对于NullPayload,我应该可以使用:

<when expression="#[payload == null]">

但是失败了。所以我必须使用:

<when expression="#[payload is NullPayload]">

我做错了吗?或者这是检查nullNullPayload的正确方法吗?

6 个答案:

答案 0 :(得分:8)

理论上,这个应该修复,但看起来并非如此。我使用的是CE 3.4.0,表达式#[payload == null]不适用于NullPayload

我发现this link显示了如何正确检查有效负载是否为NullPayload

#[payload is org.mule.transport.NullPayload]

我实际上需要知道有效负载是否 NullPayload,所以我的表达式是:

#[!(payload is org.mule.transport.NullPayload)]

像魅力一样工作。 :)

答案 1 :(得分:4)

NullPayload的Mule 3.7,(Studio 5.2)中,#[payload == null]现在返回true。有趣的是,#[payload is NullPayload]会返回false

答案 2 :(得分:1)

请尝试检查:

#[payload == empty]

答案 3 :(得分:1)

适用于版本3.5:#[payload is NullPayload]

答案 4 :(得分:0)

根据code,在最新版本的Mule中似乎仍然如此。

如果您的版本低于此值,则无效。比3.4

答案 5 :(得分:0)

这很有趣。

不适用于您的表达对我有用:

<when expression="#[!(payload == null)]">

有趣的是,其他建议(如下所列)没有给出预期的结果:

<when expression="!(payload instanceof org.mule.transport.NullPayload)">
<when expression="#[!(payload is org.mule.transport.NullPayload)]">
<when expression="#[!(payload is NullPayload)]">