8. Jakarta Tomcat

8.1. Cosa è Tomcat

 

Tomcat è il contenitore di servlet che viene utilizzato nell'Implementazione ufficiale di Riferimento per il Java Servlet e le tecnologie JavaServer Page. Le specifiche Java Servlet e JavaServer Page sono sviluppate da Sun sotto il Java Community Process.

 
--jakarta.apache.org 

Dal punto di vista degli autori:

Tomcat è il successore di jserv il quale non viene più sviluppato da tempo. Tomcat supporta le ultime API jsp e servlet definite da Sun. Sfortunatamente Tomcat è molto difficile da compilare dal sorgente, poiché utilizza un proprio sistema di compilazione chiamato "ant". Inoltre c'è una lista molto lunga di prerequisiti nel caso si voglia compilare dal sorgente. Si veda http://jakarta.apache.org/tomcat/tomcat-4.0-doc/BUILDING.txt per maggiori dettagli - Buona fortuna e inviate qualche indicazione all'autore.

Nel frattempo l'HOWTO fornisce qualche supporto di base per Tomcat installato dai binari.

L'autore è in cerca di qualche volontario che provi a compilare Tomcat dai sorgenti e dica quali passi sono necessari

8.2. Prerequisiti

8.2.2. Download dei binari

Si vada a http://java.sun.com/j2se/1.3/ [1]si scelga la propria piattaforma e si seguano i passi indicati sul sito.

8.3. Download dei binari

Sito di origine: http://jakarta.apache.org/builds/jakarta-tomcat-4.0/release/v4.1.18/src/jakarta-tomcat-4.1.18-src.tar.gz

8.3.1. Installazione dei binari

cd /usr/local

tar -xvzf jakarta-tomcat-4.1.8.tar.gz

cd jakarta-tomcat-4.1.8

cd bin

rm *.bat

echo export JAVA_HOME=/usr/lib/java/ >> /etc/profile
. /etc/profile

Per attivare il manager di Tomcat, è necessario modificare /usr/local/jakarta-tomcat-4.1.8/conf/tomcat-users.xml aggiugendo un utente »admin« o con il ruolo »manager«. Il risultato dovrebbe essere qualcosa tipo questo:

<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
  <role rolename="manager"/>
  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <user username="admin" password="secret" roles="manager"/>
  <user username="tomcat" password="tomcat" roles="tomcat"/>
  <user username="role1" password="tomcat" roles="role1"/>
  <user username="both" password="tomcat" roles="tomcat,role1"/>
</tomcat-users>

Ora dovrebbe essere possibile lanciare tomcat:

/usr/local/apache/jakarta-tomcat-4.1.8/bin/startup.sh

Dovrebbe essere possibile connettersi a: http://localhost:8080/index.jsp

8.4. mod_jk

8.4.2. Compilazione e installazione

tar -xvzf jakarta-tomcat-connectors-4.1.18-src.tar.gz

cd jakarta-tomcat-connectors-4.1.18-src/jk/native

./buildconf
./configure --with-apxs=/usr/local/apache/bin/apxs

make
make install

8.4.3. Personalizzazione

Ora segue la parte noiosa, la personalizzazione dei file di configurazione. Prima si modifichi /usr/local/jakarta-tomcat-connectors-4.1.18-src/jk/conf/workers.properties, e si copi il file in /usr/local/apache/conf

Ho creato un workers.properties di esempio che funziona con le JSP e i servlet di prova che vengono forniti con la distribuzione di Tomcat. Si basa sul workers.properties di esempio di Tomcat

Di seguito, è necessario configurare il proprio file httpd.conf. Il seguente esempio coincide con quelli forniti da Tomcat.

LoadModule jk_module libexec/mod_jk.so
AddModule mod_jk.c

JkWorkersFile /usr/local/apache/conf/workers.properties
JkLogFile /var/log/httpd/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat "%w %V %T"
JkMount /examples/servlet/* worker1
JkMount /examples/*.jsp worker1 

Dopo il riavvio di Apache, dovrebbe essere possibile connettersi alle proprie pagine JSP tramite Apache. Ad es.: http://localhost/examples/jsp/num/numguess.jsp

Per gli ulteriori passi, come l'installazione dei propri servlet e file jsp, sta a voi stessi...

SuggerimentoVariabili d'ambiente
 

Se Tomcat non si avvia e/o le proprie servlet non possono essere avviate, l'errore più comune è non avere tutte le classi necessarie nella variabile CLASSPATH.

Note

[1]

C'è anche disponibile la versione 1.4.1 di Java, ma Tomcat sembra non girare con questa.