Vediamo adesso come si installa Apache Tomcat 7, in quanto l’ultima versione installa presenta dei sostanziali cambiamenti rispetto alle precedenti versioni. Intanto Apache Tomcat è un web container open source sviluppato dalla Apache Software Foundation. Implementa le specifiche JavaServer Pages (JSP) e Servlet di Sun Microsystems.
Funziona su qualsiasi piattaforma nella quale siano installate delle JVM acronimo di Java Virtual Machine. Le differenze più significative rispetto alla precedente versione sono sostanzialmente
- supporto alla specifica 3.0 delle Servlet;
- supporto alle Annotation;
- supporto alla specifica 2.2 delle JSP;
- supporto alla specifica 2.2 di EL (Expression Language);
- maggiore facilità nell’inglobare Tomcat in altri Application Server quali JBoss;
- Memory leak detection e prevention;
- utilizzo di nonce per prevenire gli attacchi di tipo cross-site request forgery (CSRF);
- Asynchronous logging.
Il paccetto lo potetete trovare all’indirizzo http://tomcat.apache.org/download-70.cgi;trovate i vari formati linux ovviamente tar e le versioni per windows ovviamente per windows vi consigliamo la versione auto installante a 86 o 64 bit a seconda della versione installata.
Una volta fatto questo non vi rimane che avviare l’applicazione e una volta fatto andate alla vostra pagina http://localhost:8080/ se tutto è andato per il verso giusto vi troverete di fronte a questa pagina, ossia la classica pagina di benvenuto dell’applicazione
Il deploy in formato war si effettua nel seguente modo
- mettere il file .war nella cartella /webapps di Tomcat, sarà scompattata e anche il context root avrà il nome del file .war;
- andare all’indirizzo http://localhost:8080/manager/html/ (prima attivare ruolomanager, vedi sotto), e fare il deploy dell’applicazione relativo Deploy.
Intervenite sul file tomcat-users.xml nella cartella /conf e create un nuovo utente con ruolo manager.
Tale ruolo è diviso in altri 4 ruoli che sono:
- manager-gui: accessibile all’indirizzo (http://localhost:8080/manager/status) e alla web console (http://localhost:8080/manager/html);
- manager-script: all’indirizzo http://localhost:8080/manager/text/deploy?path=/test&war=file:C:/pathdelfile/file.war,
- manager-jmx: accessibile all’indirizzo (http://localhost:8080/manager/jmxproxy) e possiamo ottenere utilizzando questa query: http://localhost:8080/manager/jmxproxy/?qry=*:type=ThreadPool,name=*, per conoscere invece le Servlet in esecuzione diamo il seguente comando: http://localhost:8080/manager/jmxproxy/?qry=*:j2eeType=Servlet,*;
- manager-status: accessibile alla pagina (http://localhost:8080/manager/status).
Per assegnare l’utente possiamo fare
1 |
< user username = "username" password = "password" roles = "ruolo1, ruolo2" /> |
possiamo dunque aggiungere più di un ruolo separandoli con una virgola.
Il file tomcat-users.xml risulterà di questa forma:
1 |
<? xml version = '1.0' encoding = 'utf-8' ?> |
2 |
< tomcat-users > |
3 |
< user username = "admin" password = "admin" roles = "manager-gui,manager-jmx" /> |
4 |
< user username = "user" password = "user" roles = "manager-status" /> |
5 |
</ tomcat-users > |
Invece per cambiare la porta su cui risponde Tomcat, si modifica il file server.xml nella cartella /conf nel seguente modo protocollo HTTP:
1 |
< Connector port = "8080" protocol = "HTTP/1.1" |
2 |
connectionTimeout = "20000" |
3 |
redirectPort = "8443" /> |
ora al posto di 8080 dovremmo utilizzare quello sostituito noi abbiamo messo 8443 in quanto è quello relativo al socket https.. Inteve per cambiare la porta dove viene fatto il deploy e vengono eseguite le jspsi modifica il file server.xml di Tomcat, localizzate la seguente direttiva
1 |
< Host name = "localhost" appBase = "webapps" |
2 |
unpackWARs = "true" autoDeploy = "true" > |
E effettuare il seguente cambiamento.
1 |
< Host name = "localhost" appBase = "C://nomepath//nomecartella" |
2 |
unpackWARs = "true" autoDeploy = "true" > |
UnpackWARs=true significa che ogni file .war che inseriamo in questa directory verrà scompattato mentre l’autoDeploy=true farà in modo che di un .war ne venga fatto il deploy appena lo inseriamo nella directory.