Configurazione di Tomcat e Axis2 su Eclipse e primo Web Service Java

Salve a tutti!
Per necessità lavorative mi sono dovuto avvicinare ai Web Service Java. Ho deciso di fare questo tutorial perché cercando di configurare il tutto per poterci lavorare, ho incontrato alcune difficoltà e errori vari che spero di evitare a qualcuno.
Nello specifico ho deciso di orientarmi su tecnologie Apache che sono una sicurezza sia dal punto di vista di affidabilità che di community. Quindi come Java Servlet Container ho preso l'ormai usatissimo Apache Tomcat mentre come Web Services / SOAP / WSDL engine Axis2 il successore di Axis.
Axis2, rispetto ad Axis, ha un'architettura più flessibile, efficiente e configurabile. Un'altra particolarità che mi ha fatto propendere per la scelta di Axis2 (faceva parte dei requisiti del mio lavoro) è che è non solo supporta SOAP 1.1 e 1.2 ma anche gli usatissimi Web service REST style.

Questo articolo sarà composto da una prima parte in cui vedremo come configurare Tomcat e Axis2 e nella seconda un piccolo esempino classico di web service.

Configurazione

Abbiamo Java installato? Se non ce l'abbiamo procediamo!

sudo apt-get update
sudo apt-get install default-jre default-jdk

Per prima cosa andiamo a scaricarci la versione di Eclipse adatta allo sviluppo di Web Service.
Dalla sezione download del sito ci scarichiamo l'ultima versione di Eclipse IDE for Java EE Developers. Scompattiamo lo zip dove più ci piace.

Ora andiamo a scaricare il targz di Tomcat da questo indirizzo. Io ho scaricato la versione 8.5 perché ancora compatibile con Java 7. Da terminale ci posizioniamo sulla cartella dove è stato scaricato l'archivio di tomcat, lo scompattiamo e lo mettiamo in una specifica directory.

cd Downolads
tar xvf apache-tomcat-8.5.13.tar.gz
sudo mkdir /usr/local/tomacat
sudo mv apache-tomcat-8.5.13 /usr/local/tomacat

NB: se avete scaricato una versione diversa, sostituire la versione ai comandi da terminale.

A questo punto scarichiamo la WAR e la Binary distribution di Axis2 a questo link.
Dentro lo zip della distribuzione WAR vi è il file axis2.war che dovrà essere scompattato nella cartella /usr/local/tomcat/apache-tomcat-8.5.13/webapps/. Lo zip col binario va scompattato e messo da qualche parte. Io l'ho messo dentro la mia home sotto una nuova cartella web.

Entriamo su Eclipse. Andiamo subito in Windows->Preferences e poi cerchiamo Axis2 Preferences. Nella runtime location, ci mettiamo il path della cartella di Axis2 che contiene i binari.

Nella sezione in basso insieme a Console ci dovrebbe essere la tab Servers. Nel caso non ci fosse andate su Windows -> Show View -> Servers. Clicchiamo di destro sull'area bianca di Servers -> New -> Server.
Selezioniamo dalla lista Tomcat 8.5 espandendo la voce Apache e poi clicchiamo su Next. In questa finestra bisognerà specificare il path di installazione di Tomcat. Selezioniamo quindi /usr/local/tomacat/apache-tomcat-8.5.13 e poi Finish.
Nella tab Servers sarà apparsa l'istanza del server. Clicchiamoci due volte e apparirà una maschera con le configurazioni del server. Nella sezione Server Locations selezioniamo la seconda voce Use Tomcat installation e salviamo.

Facciamo partire il Server cliccandoci di destro e poi Start.
Apriamo un browser e andiamo all'indirizzo http://localhost:8080.
Se tutto Tomcat è stato configurato correttamente, non vedremo errori. Se ora andiamo su http://localhost:8080/axis2 dovremo poter vedere la pagina di benvenuto di Axis2.

Tutto dovrebbe essere a posto adesso. Possiamo cominciare con il nostro esempino di prova.

Hello Axis2!

L'esempio sarà molto semplice: faremo un web service di una calcolatrice con le operazioni di somma e sottrazione.

Creazione Progetto Java

Per prima cosa creiamo un nuovo progetto java: File -> New -> Project e selezionare Java Project. Chiamiamo il progetto CalculatorApp.
Una volta fatto questo, tasto destro sulla cartella src del progetto e New -> Class. Inseriamo i dati che si vedono nell'immagine sottostante

Inseriamo nella classe il seguente codice:

Creazione Web Service

Per la creazione del WS clicchiamo di destro sulla classe appena creata e poi Web Services -> Create Web Service.
Si aprirà una finestra di questo tipo.

Notiamo che la classe selezionata è Calculator per il Service Implementation. Sotto ci sono delle configurazioni da fare. Clicchiamo sul primo link e impostiamo le voci come segue

Cliccando sul terzo link di configurazione invece Nominiamo il Service Project e indichiamo che vogliamo un Dynamic Web Project.

Andiamo su Next, lasciamo di default le impostazioni sull'xml, ancora Next e Star Server. Ora Finsih.
Se ci sono degli errori non temete, ora li risolviamo.

Uno degli errori che forse avrete è il seguente ripetuto su altri file

Per risolvere scaricate il jstl-1.2.jar da questo indrizzo e mettiamolo dentro WebContent/WEB-INF/lib

Gli errori di questo tipo dovrebbero essere andati via. Guardando però la console ci sono altri problemi con l'URIResolver. Per risolvere questo problema copiamo dentro la cartella WebContent/WEB-INF/lib il file xmlchema-core-*.jar che si trova all'interno di axis2-1.7/lib/ (la cartella dei binari di axis2).

Ultimissima cosa da sistemare: andiamo su CalculatorWS/WebContent/WEB-INF/services/Calculator/META-INF/services.xml. Se nei tag di messageReceiver abbaimo degli url del tipo

dobbiamo correggere i mep in questo modo

Restartiamo il Server! In console a questo punto non ci dovrebbero essere più errori e siamo pronti per testare il nostro nuovo Web Service fiammante 🙂

Apriamo un qualsiasi browser e andiamo all'indirizzo http://127.0.0.1:8080/CalculatorWS/services/Calculator?wsdl per vedere il wsdl.

Andiamo su Run->Launch the Web Services Explorer e clicchiamo l'iconcina in alto a destra (quella vicina alla stellina) e incolliamo l'indirizzo del wsdl per poi premere Go.

Andiamo sulla funzione di add e proviamo ad aggiungere i due parametri a e b. Cliccando Go nella parte sottostante vedremo il risultato del'operazione.

Il tutto può essere fatto anche tramite chiamata REST!
Provate a scrivere da browser http://127.0.0.1:8080/CalculatorWS/services/Calculator/add?a=2&b=4

Per oggi è tutto!
Per problemi, errori vari e consigli, la sezione commenti è sotto a posta 😉
Alla prossima!

Ingegnere Informatico e Ricercatore se compiace al Prodigioso Spaghetto Volante. Sono uno spartan racer, massimo esperto di serie tv, fotografo amatoriale e appena ne ho l'occasione preparo la valigia e parto
Configurazione di Tomcat e Axis2 su Eclipse e primo Web Service Java ultima modifica: 2017-04-11T11:04:20+00:00 da andreasalvi


Advertisment ad adsense adlogger