Dopo aver affrontato la fase dell creazione del Custom Transformer e del Logger aggiungiamo il componente Data Mapper dalla palette unitamente al Logger, selezioniamo quindi il Data mapper e nel tab delle "Properties" per la sezione dell'input scegliamo la voce "Json" ed effettuiamo il caricamento dal nostro file.
Per la sezione output carichiamo il pojo specificando nel tab "Type" il valore "Pojo" e per "Class" il nome qualificato, clicchiamo poi sul pulsante "Create Mapping" per ottenere il mapping automatico nel caso in cui i campi coincidano:
Il mapping non dovrà essere necessariamente "1:1", nel senso che il Pojo avrebbe potuto avere anche il solo campo "codiceIban" anche se il messaggio JSON contiene più informazioni; se si clicca su uno dei campi è inoltre possibile associarlo manualmente ad un altro campo; Mule controllerà la compatibilità di tipo (se non a compile a run-time.
Ora non resta che aggiungere un componente Flow Control "Choice" per ottenere un'elaborazione diversa in base al valore restituito dal Web service:
Ora trasciniamo tre componenti dalla palette nel riquadro di "Seleziona flusso", e cioè un Logger, un setPayload e un connector JMS per il ramo "Error":
Dove il Logger stampa un messaggio, il setPayload prepara il messaggio da inviare alla coda "errorQueue"; basta impostare il value nella sezione "Settings" del tab, all'espressione "Codice Cliente Inesistente: #[payload]"; mentre la configurazione della coda JMS:
Non dimentichiamo infine di importare la libreria activemq-core-5.7.0.jar
nel nostro progetto. Fatto questo ripetiamo gli stessi passi per il ramo "Success":
Infine aggiungiamo le conditions al "Choice" per i due rami:
L'ultimo passaggio consisterà nel convertire il messaggio di risposta dal browser in formato stringa, in modo che la visualizzazione avvenga senza problemi; ciò si otterrà aggiungendo all'esterno del flow il componente predefinito "Object to String".
Avviando l'applicazione il container di Mule avrà già pubblicato il nostro Web service; digitiamo quindi da browser l'url http://localhost:808/startMuleExample?codiceCliente=valore
riceveremo la schermata di risposta:
Codice Cliente presente:
nome:Giuseppe
cognome:Astarita
iban:ACVXFXXFDCHS564243
potete anche verificare la correttezza dei messaggi stampati nella console di output:
per ActiveMQ, il messaggio è stato inviato alla coda come ci aspettavamo e potete verificarlo voi stessi.