Fare il debug di web services

Nel precedente articolo, vi ho accennato all’uso di Eclipse, Tomcat e Axis2 per la creazione di web services.

Vi sarete chiesti: come faccio a sapere che il tutto stia funzionando passo per passo oltre a vedere l’output da console ?

Potete usare 2 modi:

1) vedere i messaggi scambiati tra client e server

2) usare il debug remoto

Se non usate Axis2, ma un semplice client server che comunicano tramite una porta, puo’ esservi utile TCPMon una applicazione java che si esegue da un unico jar file a cui dovete configurare come porta locale una porta che il vostro client deve chiamare e la server port la porta del vero server. In pratica esso funziona come proxy permettendovi di vedere i messaggi scambiati.

Se usate Axis2 potete usare il SOAPMonitor che, come TCPMon, è una sorta di proxy che si infrappone nella comunicazione. Non sono riuscito a farlo funzionare su Axis2 1.4, in rete ho trovato un tipo che lo ha fatto funzionare ma non voglio perderci tempo, mentre ci sono riuscito su Axis2 1.3 semplicemente estraendo dal file soapmonitor-1.3.jar (presente in Axis2) le classi in esso contenute e copiandole nella root directory di Axis2 (stiamo parlando della directory di Axis2 che sta dentro Tomcat).

Alternativamente al SOAPMonitor c’è il tracer di WSO2 Web Services Application Server o WSAS. Questo application server è formato da Tomcat e Axis più la serie di moduli che si appoggiano ad Axis come Apache Rampart per quanto riguarda la sicurezza (WS-Security) o Sandesha per quanto riguarda l’affidabilità (WS-ReliableMessaging). Nell’interfaccia web di Axis2 avete sicuramente notato la sezione dedicata ai moduli che possono essere agganciati a tutti i web services o solo ad alcuni. Ebbene WSAS permette di averli già tutti installati (vi risparmia la fatica) offrendo dalla sua interfaccia web una serie di tool tra cui il tracer.

Per quanto riguarda il tracer ho trovato WSAS 2.1 più stabile di WSAS 2.2 e 2.3 (ultima versione al momento in cui scrivo). Quello di 2.2 mi geneva una eccezione mentre leggevo un messaggio quello di 2.3 funziona ma in WSAS esiste uno strumento che permette di provare un web service da interfaccia web (una volta selezionato il web service cliccate su Try it) che mi ha funzionato meglio su 2.1 che su 2.3. Poi ovviamente fate voi.

2) Come per le applicazioni stand alone potete inserire dei breakpoint nel codice e fare il debug potete fare lo stesso anche per i web services a patto che l’application server ve lo consente (Tomcat di sicuro) e che dal vostro IDE (di sicuro Eclipse) possiate lanciare l’applicazione in debug mode. In sostanza IDE e application server si accordano su una porta per il debug; Il tutto è dovuto alla Java Platform Debugger Architecture. Cercate “eclipse remote debug” in Google e troverete esempi come questi:

http://it.newinstance.it/2005/10/04/remote-debugging-tomcat-with-eclipse/

http://flexblog.faratasystems.com/?p=267

http://www.eclipsezone.com/eclipse/forums/t53459.html

http://www.onjava.com/pub/a/onjava/2005/08/31/eclipse-jboss-remote-debug.html?page=1

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s