Comment briser en milieu de l'écoulement dans MULE et renvoyer le message au client ..?
Question
J'ai un flux Mule comme ci-dessous:
<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>
Ce flux pénètre d'abord dans ma première classe de composant: " com.java.Meta ??em> ". Et tout ce que je " retour " de cette classe java devient l'entrée pour ma deuxième classe de composant:. " com.java.Meta2 "
Maintenant, ce que je veux faire est comme:
Je veux vérifier quelque chose dans " charge utile " en classe " Meta ??strong>" et si elle n'existe pas, alors je veux revenir un Java HashMap au client (sous forme de JSON) contenant erreur clé.
Et si elle existe, alors je veux revenir le même " charge utile " à la seconde classe de composant " META2 ".
Comment puis-je parvenir ?? ..
La solution
Enveloppez votre deuxième composant dans un routeur de choix, renvoyant le message actuel de sa charge utile carte contient la clé « erreur ».
Vous pouvez utiliser une expression Groovy:
#[groovy:payload.containsKey('error')]