2014-12-05 17 views

Odpowiedz

0

To wydaje się być nadal prawdziwe w ostatniej wersji Mule, zgodnie z tym code.

To nie będzie działać, jeśli jesteś w wersji < niż 3,4

+1

Używam 3.5.1. # [payload == null] kończy się niepowodzeniem, jeśli ładunek ma wartość NullPayload –

1

Spróbuj to sprawdzić:

#[payload == empty]

+0

Podobnie jak w Collection.isEmpty()? Moja ładowność nie jest zbiorem, więc nie będzie metody isEmpty(). Czy masz ten sam problem z == null, a następnie? Mogę obejść ten problem, używając instanceof. Głównym problemem jest to, że powinienem móc używać == null –

8

Teoretycznie powinno to być stałe, ale nie robi” t wygląda tak. Używam CE 3.4.0, a wyrażenie #[payload == null] nie działa dla NullPayload.

Znalazłem this link, który pokazuje, jak sprawdzić, czy ładunek jest NullPayload poprawnie:

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

I rzeczywiście potrzebne, aby wiedzieć, czy ładunek nie był NullPayload, więc moja twarz była:

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

Działa jak urok. :)

+0

Dzięki @mathielo, szaleję. [MULE-6427] (https://www.mulesoft.org/jira/browse/MULE-6427) stwierdził, że został naprawiony, a nawet ich [strona z wyrażeniami MEL] (http://www.mulesoft.org/documentation/ display/current/Mule + Expression + Language + Tips) mówi, że powinieneś móc używać '# [payload == null]', ale tylko twoje rozwiązanie działa dla mnie. Wielkie dzięki jeszcze raz! –

+0

Dzięki, pomogłeś mi :) Mulesoft jest bardzo słabo udokumentowany :( – dmydlarz

+0

Perfect, to działa – Stefano

1

To działa na wersji 3.5: #[payload is NullPayload]

3

W Mule 3.7 (studio 5.2) dla NullPayload, #[payload == null] teraz powraca true. Co ciekawe, #[payload is NullPayload] zwraca false.

Powiązane problemy