Web Services
-
Upload
rosario-turco -
Category
Documents
-
view
337 -
download
1
description
Transcript of Web Services
1
Creare webservices con Eclipse, AXIS2 e Tomcat Rosario Turco
Se si hanno a disposizione IDE evoluti come Oracle WorkspaceStudio 1.1 o altri Oracle (OEPE), adatti a
particolari application server come BEA WebLogic e a SOAP, la realizzazione di un web services è
realizzabile con pochissimi click, grazie soprattutto a componenti o palette selezionabili. I web services così
ottenibili sono però orientati ad un particolare application server.
Come fare nel caso che il nostro application server è Tomcat o JBoss o altro? In questo caso vi propongo di
usare Eclipse Helios, Axis2 e Tomcat. Il procedimento se non lo sapete vi porterà a diversi naufragi e forse
all’abbandono totale di tale scelta (ingiustamente). Ma non vi preoccupate che la guida vi propone tutte le
varie fasi, automatizzandole con Elicpse, anziché farle a mano.
Fase 1 – Scaricate Tomcat 6.0
Scaricate e unzippate tomcat ad esempio sotto C.
http://tomcat.apache.org/download-60.cgi
Fase 2 - Scaricate AXis2 1.5.4
Scaricatelo e spacchettatelo in una directory sotto C
http://axis.apache.org/axis2/java/core/download.cgi
Fase 3 – Creiamo su Eclipse il Server Tomcat
File -> New -> Other -> Server -> Next -> Apache -> Tomcat 6.0 -> FInish
Fase 4 - Creiamo un Dynamic Web Service
File -> New -> Other -> Web -> Dynamic Web Project -> Next
Mettere un Project Name. Esempio HelloWorldWS
Click su Modify -> check su Axis2 Web Services
Click su Runtimes per controllare che sia selezionato il server Tomcat
Next -> Next
Lasciare il check su web.xml
Finish->Yes->Selezionare in alto a destra Java e si apre a sinistra il Package Explore
Fase 5 – Selezioniamo da Window le preferenze
Window->Preferences->Web Services->Axis2 Preferences
Selezionare Axis2 runtinme e mettere il path della AXIS2_HOME
Selezionare Axis2 Preferences e selezionare “Generate an interface for the skeleton”
2
Fase 6 – Levare dai browser il proxy aziendale
Anche se userete il browser interno potreste poi incappare sull’errore
IWAB0135E An unexpected error has occurred.
java.net.UnknownHostException
Ora controlliamo dal menu Window->Web browser-> lasciamo quello internal, ma
potreste impostare anche Mozilla o altro.
Fase 7 – Impostiamo le librerie per Eclipse
Selezioniamo la radice del progetto. Poi da menu Project->Properties->Java Build path->Add External Jar
Qua dobbiamo aggiungere i jar delle librerie che ci possono servire e a cui fanno riferimento i sorgenti (ad
esempio JDOM, etc.)
Fase 8 - creiamo il software
Nella src del progetto aggiungiamo il package Hello (New->Package) e il package services. Nel package Hello
aggiungiamo il file HelloWS.java (New->File mettere HelloWA.java) e iniziamolo con package services:
Semplice Sorgente HelloWS.java
package services;
import javax.jws.*;
@SuppressWarnings("deprecation")
@WebService
public class HelloWS {
public String HelloWS(String name){
return("Ciao " + name);
}
}
Ovviamente il metodo HelloWS poteva richiamare anche altri metodi.
Fase 9 – creiamo il Web Service
Selezioniamo il sorgente HelloWS.java col mouse e facciamo:
New->Other->Web Services->Web Service->Next
Adesso attenzione: cliccare su Web Service runtime: Apache Axis e selezionare Axis2 -> OK -> Next->
Lasciare selezionata la voce “Generate a default service.xml”->Next->Start server (se richiesto)->Finish
Se selezionate nella parte di sotto di Eclipse la linguetta Servers, vedrete aprendo Tomcat che è stato
deployato (il server Tomcat è solo un clone di quello reale) HelloWorld.
Fase 10 – Test sul Tomcat di Eclipse
Clicchiamo il triangolino verde di start del Server e da console vediamo che si è avviato ed è in attesa.
Testiamo Axis2 ora (ricordate che per la console Axis2 username è admin e password è axis2, ma questo
non vi servirà se seguite la guida attentamente).
3
Selezioniamo adesso la root del progetto sul Package Explorer. Tasto destro del mouse -> Run As -> Run on
the server -> Next -> Osserviamo che già a destra è presente HelloWorld (altrimenti facciamo Add) -> Finish
Fate Validate per vedere che non da errori.
Da Services vedremo due cose: i servizi deployati con l’endpoint e la porta e la WSDL se clicchiamo su
HelloWSService.
Catturate col mosue la parte http://localhost:8080/HelloWorld/services/HelloWSService
Vi servirà dopo nel test.
4
Salviamo la WSDL su un file HelloWorldWS.wsdl. Serve per darla ai sistemi che chiameranno il servizio
esposto o per i vostri test con SOAPUI.
Fase 10 – Facciamo prima il test del Web service con Eclipse
Sempre selezionando la root del progetto, da menu scegliere Run -> Launch the Web Services Explorer
Sul Web Services Explorer a destra scegliere WSDL page
Qui inserite i dati che avete nel buffer del mouse e aggoingete alla fine ?wsdl ovvero
http://localhost:8080/HelloWorld/services/HelloWSService?wsdl
Fate Go e a sinistra espandete tutte le info come in figura.
5
A sinistra per name inserite il vostro nome e fate Go. Nella parte dello Status dovreste ottenere “Ciao” e il
vostro nome. OK funziona.
Fase 10 – Esportiamo il WAR
Da Eclipse File->Export->Web->WAR->Next
Scegliere il Web Project HelloWorld e col browser scegliere il desktop dove depositarlo oppure sotto la
webapps di Tomcat direttamente e fare Finish.
Fase 11 – Stop del server Tomcat su Eclipse
Tasto rosso.
Fase 12 – configuriamo Tomcat
Andare nella bin sotto %CATALINA_HOME%/bin e a startup.cmd o a startup.sh aggiungere al CLASSPATH
tutti i jar necessari. Consigliamo di aggiungere prima le variabili HOME ad esempio se ci serve JDOM,
aggiungere a parte la JDOM_HOME e poi nel classpath far riferimento ai jar con %JDOM_HOME%
Mettere il war nella webapps di Tomcat. Lanciate startup.cmd e aspettare che il war venga spacchettato.
Fase 13 – Configuriamo AXIS2 sotto Tomcat
Se abbiamo usato altri jar, vanno tutti posti senza alcuna alberatura in:
%CATALINA_HOME%\webapps\HelloWorld\WEB-INF\lib
Occorre riavviare Tomcat.
6
Fase 14 – Test con SOAP UI
Con la WSDL che ci siamo salvati possiamo generare una suite di test con SOAP UI. Ok ora avete tutte le
info per proseguire da soli.
Alla prox