Wie kann man in Maultier in die Mitte des Flusses einbrechen und die Nachricht an den Client zurückgeben.
Frage
Ich habe einen Fluss in Maultier wie unten:
<flow name="MetaService">
<http:inbound-endpoint address="http://localhost:8000/jcore/meta"
transformer-refs="HttpParams" responseTransformer-refs="JavaObjectToJson">
</http:inbound-endpoint>
<component class = "com.java.Meta">
<component class = "com.java.Meta2"
</flow>
Dieser Fluss tritt zuerst in meine erste Komponentenklasse ein: "com.java.meta". Und was auch immer ich"Rückkehr"Aus dieser Java -Klasse wird die Eingabe für meine zweite Komponentenklasse:"com.java.meta2".
Nun, was ich tun möchte, ist wie:
Ich möchte nach etwas suchen "Nutzlast" im Unterricht "Meta"Und wenn es nicht existiert, möchte ich a zurückgeben Java Hashmap an den Kunden (in Form von JSON), das die enthält Error Schlüssel.
Und wenn es existiert, möchte ich dasselbe zurückgeben. "Nutzlast"zur zweiten Komponentenklasse"Meta2".
Wie kann ich das erreichen .. ??
Lösung
Wickeln Sie Ihre zweite Komponente in einen Auswahlrouter ein und senden Sie die aktuelle Nachricht zurück. Die Kartennutzlast enthält die Schlüssel -Taste "Fehler".
Sie können einen groovigen Ausdruck verwenden:
#[groovy:payload.containsKey('error')]