A differenza del precedente, questo articolo tratta lo sviluppo di un webservice sempre con Axis2, ma questa volta, utilizzandolo in maniera embedded all’interno del Webservice stesso.
Vi chiedete, a cosa serve?
Sviluppare un webservice in questa maniera vi da diversi vantaggi (e svantaggi), analizziamoli:
PRO:
- Non avete bisogno di installare Axis2 nel vostro servlet container
- il deploy del webservice viene fatto direttamente da Tomcat, questo vuol dire che il ws non è isolato nel contesto di Axis ma può utilizzare anche altre librerie fatte da voi senza che dobbiate per forza farne un jar ogni volta che le modificate
- Permette maggiore pulizia e isolamento nella configurazione tramite server.xml e web.xml
CONTRO:
- Ogni webservice contiene un’istanza di Axis, questo si potrebbe tradurre in uno spreco di memoria se sulla stessa macchina fate girare molti servizi contemporaneamente
- Se avete la necessità che i webservices girino in un contesto isolato dalle altre applicazioni web, non è possibile.
Come si mette in atto questa scomposizione?
Inanzitutto, dopo aver generato il codice dello skeleton, procedete come indica questo documento
How to Embed an Axis2 based Web Service in your Webapp
Quando arrivate alla fine, noterete come all’avvio di Tomcat, vengano generate una serie di ClassNotFoundException che pregiudicano il funzionamento del webservice. Questo perchè nelle librerie (jar) standard che vengono incluse dal code generator, ne mancano 2 fondamentali:
-jms
-common-httpclient (è contenuta nella distribuzione binaria standard di Axis2)
Scaricatele, inseritele nella vostra cartella WEB-INF/classes/lib riavviate tomcat e il gioco è fatto.
Ciao!







Entries (RSS)