根据以下机票:https://www.mulesoft.org/jira/browse/MULE-6427对于NullPayload
,我应该可以使用:
<when expression="#[payload == null]">
但是失败了。所以我必须使用:
<when expression="#[payload is NullPayload]">
我做错了吗?或者这是检查null
或NullPayload
的正确方法吗?
答案 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)]">