Installare e configurare Apache Tomcat + Java SOAP su Linux
Una tipologia di software che sta prendendo sempre più piede, è quella dei web services. In questi casi c’è una parte client (richiedente) che richiede delle informazioni ad una parte server (erogatore).

Vediamo, in questa guida, come utilizzare il protocollo SOAP in Java su Linux usando Apache Tomcat (istruzioni per le distribuzioni basate su Debian).
0 – Premessa
Supponiamo di indicare con:
- $ il prompt dell’utente;
- # il prompt di root.
Inoltre indichiamo con Debian, tutte le distribuzioni basate su Debian, come Ubuntu, ecc.
1 – Installazione del Java
Dovete aver installato la versione non-free del Java, ossia quello sviluppato dalla Sun. Per verificare l’esatta versione del Java, è necessario lanciare questo comando (java interprete e javac compilatore):
$ java -version
java version "1.6.0_03"
$ javac -version
javac 1.6.0_03
Se non avete questo output, o dovete installare la versione Sun del Java, oppure non avete sistemato bene il link simbolico del Java. Con Debian è possibile sistemare correttamente la versione del java con questo comando:
# update-alternatives --config java
# update-alternatives --config javac
Nel prompt, dovete settare la versione Sun. Se non avete il java, allora scaricarelo:
# apt-get install sun-java6-jdk
2 – Installazione del Tomcat
Veniamo ora alla parte più complicata. Dal vostro gestore dei pacchetti, scaricate il Tomcat. Bisogna scaricare alcuni pacchetti:
# apt-get install tomcat5.5 tomcat5.5-admin tomcat5.5-webapps
Dopo aver scaricato e installato il tutto, aprite Firefox (o il vostro browser preferito) e andate al seguente URL:
http://localhost:8180
Dovrebbe apparire una pagina simile a questa:
Ora, dovete scaricare packagestargz.odt (da rinominare packages.tar.gz) contenente alcuni tools per riuscire a configurare correttamente il SOAP. Una volta scaricato:
$ mv packagestargz.odt packages.tar.gz
e poi lo estraete con:
$ tar xvf package.tar.gz
Il passo successivo, è quello di copiare le librerie che permettono di far girare il SOAP all’interno di Tomcat.
# cd package
# chmod a+w *.jar
# cp *.jar /usr/share/tomcat5.5/common/lib
Adesso provate questo comando:
# ls /usr/share/tomcat5.5/webapps
Non dovrebbe restituire niente. Allora copiamo un semplice file, e magicamente si avrà:
# cp soap.war /usr/share/tomcat5.5/webapps
# ls /usr/share/tomcat5.5/webapps
soap soap.war
Abbiamo copiato un solo file ma abbiamo in realtà anche una directory! Il soap sta prendendo forma.
Mancano pochi passaggi e poi il Tomcat sarà perfettamente configurato. Bisogna cambiare la porta del servizio, facendola passare da 8180 a 8080. Aprite con un editor il file:
/usr/share/tomcat5.5/conf/server.xml
e cercate una cosa del genere:
<Connector port=”8180” maxHttpHeaderSize=”8192″
e sostituitelo con:
<Connector port=”8080” maxHttpHeaderSize=”8192″
Infine, dovete aprire il file:
/etc/default/tomcat5.5
e sostituire:
#TOMCAT5_SECURITY=yes
con (occhio che dovete togliere il #):
TOMCAT5_SECURITY=no
3 – Configurare le variabili d’Ambiente
Dato che il Tomcat è pienamente configurato, ora mancano alcune finezze per arrivare allo scopo prefissato in partenza.
Dovete modificare il vostro file di login situato nella vostra home ~/.bashrc settando (o aggiungendo) due variabili: JAVA_HOME e CLASSPATH. Il file avrà una forma simile a questa:
…
JAVA_HOME=/usr/lib/jvm/java-6-sun
export JAVA_HOME
CLASSPATH=:.:/usr/share/tomcat5.5/common/lib/activation.jar:/usr/share/tomcat5.5/common/lib/mail.jar:/usr/share/tomcat5.5/common/lib/soap.jar:/usr/share/tomcat5.5/common/lib/xercesImpl.jar:/usr/share/tomcat5.5/common/lib/xml-apis.jar
export CLASSPATH
…
dove i puntini indicano altra roba presente nel file, ma che in questo contesto non ci serve.
Nota: la definizione del CLASSPATH deve essere tutta attaccata (la riga è lunga e va oltre la lunghezza del tema di wordpress
)
4 – Esecuzione del Tomcat
Dato che ora è tutto OK, dobbiamo prima di tutto far assimilare le variabili appena create all’utente, così:
$ . ~/.bashrc
Se vi da errore, tornate al punto precedente, forse avete configurato male le variabili. Se invece è tutto liscio, testate le variabili in questo modo:
$ echo $CLASSPATH
…
$ echo $JAVA_HOME
…
Dopo ogni echo avrete l’output di prima. Infine, riavviamo il Tomcat:
# /etc/init.d/tomcat5.5 restart
Adesso, provate a piazzarvi con Firefox su:
http://localhost:8080/soap/admin
Se vedete una cosa simile a:
complimenti, il Tomcat e SOAP sono configurati correttamente!
5 – Testare il tutto con un esempio
Prima di tutto ci spostiamo nella directory test, con:
$ cd test
Adesso ci occupiamo del server, e quindi della sua compilazione:
$ javac MyCalculator.java
Ora bisogna portare il .class generato, nella directory che esporta il servizio, ossia questa operazione:
# cp MyCalculator.class /usr/share/tomcat5.5/webapps/soap/WEB-INF/classes
Arrivati qua, ci manca solo la pubblicazione del servizio, che la si fa così:
# ./deploy.sh
Finalmente, possiamo testare il nostro esempio. Il server è una calcolatrice che vuole 2 numeri e restituisce la loro somma. Compiliamo il client ed eseguiamolo:
$ javac SimpleSOAPClient.java
$ java SimpleSOAPClient 1 2
Result is 3
Il risultato è 3, e questo significa che il SOAP ha funzionato alla perfezione!
-
http://toastedtech.wordpress.com/ montoya
-
oscar982
-
http://toastedtech.wordpress.com/ montoya
-
Iceman
-
http://toastedtech.wordpress.com/ montoya
-
roby


