Come creare e invocare un servizio Soap con Mule

Come creare e invocare un servizio Soap con Mule

Ciao Developer, in questo articolo ti voglio spiegare tramite un esempio, come creare e invocare un servizio SOAP con Mule.

Come creare un servizio Soap

Per creare qualsiasi servizio SOAP abbiamo bisogno di artefatti WSDL come WSDL e i suoi XSD.
Come POC ho creato un semplice WSDL con quattro semplici metodi di calcolo (somma, sottrazione, divisione e moltiplicazione).

Per prima cosa dobbiamo creare il nostro progetto e direttamente da wizard, diamo in input a Studio il WSDL, come facciamo per le REST API.
Studio, mediante il plugin SOAP, creerà per noi il SOAP Router e N flow quanti sono i metodi che necessitano di implementazione (nel nostro caso sono quattro) :

Come creare il servizio Soap

Otterremo il risultato atteso, ovvero i vari flussi per ogni metodo:

Come creare un servizio soap

Ora non resta che implementare ogni singolo metodo utilizzando le componenti che già sappiamo usare.
Prendiamo come esempio l’implementazione del metodo “somma”:

Esempio metodo somma

Si vede chiaramente la costruzione del soap envelop. Costruendo l’oggetto desiderato in output dal servizio in formato XML.

A questo punto, mediante Soap UI (trovi il progetto nel codice di esempio) proviamo a usare il servizio. Il servizio è in ascolto sulla URL:

http://localhost:8081/CalcService/CalcServicePort
// Download WSDL: http://localhost:8081/CalcService/CalcServicePort?wsdl

Alcuni esempi di chiamata:

Esempio invocazione metodo
Esempio invocazione metodo con errore

Nel caso del metodo “divisione” ho implementato di proposito un Soap Fault, considerando il caso dove il parametro b è uguale a 0. In questo modo avete a disposizione anche un esempio di come si genera questo tipo di risposta.

Come invocare un servizio Soap

Prima di tutto, mediante la palette di Mule, dobbiamo aggiungere il connettore “Web Service Consumer”.
Questo connettore ci permette di interagire con il servizio Soap.

La configurazione è molto semplice, basta selezionare il file WSDL e indicare l’endpoint (address) del servizio:

Configurazione WSC

Come endpoint, per semplicità, ho impostato il servizio in esecuzione nel runtime locale del progetto.

Ora dobbiamo implementare una richiesta di consumo:

Esempio WSC

Per generare la chiamata ho creato un nuovo http listener che resta in ascolto nella porta 8082.
DataWeave ci viene in aiuto anche in questo caso (come sempre :D).

Nel progetto Soap UI trovi anche un esempio di chiamata a questo endpoint:

Esempio richiesta soap

Conclusione

Sono felice di aver condiviso con te come creare e invocare un servizio SOAP con Mule.
Di per se, come in altri contesti, Mule ci aiuta molto e ci permette di velocizzare alcuni passaggi che con altre tecnologie sarebbero più macchinose. Ovviamente questo è il mio parere sulla base della mia esperienza.

Codice di esempio: https://Bonny@bitbucket.org/Bonny/soap-example.git

Leggi anche: Come leggere e scrivere su file in Mule

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

15 + 2 =