Newsgroup: it.comp.java
Titolo: Problema con Tomcat e JSP/Servlet (non compila !!)

Salve a tutti,
in questi giorni di vacanza sto studiando JSP e Servlet ma ho qualche
problema a metterle in pratica.
 
ho installato JDK 1.4.2 SE nella directory D:\JDK1.4.2, 
ho settato il PATH per puntare a D:\jdk1.4.2\Bin 
e il CLASSPATH a d:\jdk1.4.2\lib\tools.jar
Compilo ed eseguo i programmi java senza problemi.
ho installato tomcat nella directory D:\Tomcat\jakarta-tomcat-5.0.27,
ho settato: SET CATALINA_HOME=D:\Tomcat\jakarta-tomcat-5.0.27 e
SET JAVA_HOME=D:\jdk1.4.2
Quando avvio Tomcat e vado su 
http://localhost:8080/
 vedo la pagina iniziale,
gli esempi delle JSP e Servlet funzionano correttamente.
Se però provo a modificare una JSP non vedo la modifica e se cancello il 
.class non me lo ricrea dandomi un errore di classe non trovata.
In pratica Tomcat non mi ricompila le pagine !!! dove sbaglio ???
Ho provato anche a copiare il file tools.jar in $CATALINA_HOME\common\lib
come ho letto da qualche parte ma non è servito a niente.

 .class non me lo ricrea dandomi un errore di classe non trovata.
In che senso provi a modificare!? Ad esempio il file index.jsp nella 
cartella ROOT?! Per fare pratica potresti come prima cosa crearti una 
cartella del tipo: $CATALINA_HOME/webapps/tuacartella cosi facendo ti 
crei  una tua webapp raggiungibile tramite 
http://localhost:8080/tuacartella
 e cosi provi anche la compilazione 
delle pagine creandone di nuove. Anche semplici JSP fatte col blocco note!
Per poi quando hai fatto pratica andare a lavore nella cartella ROOT. 
Che comunque ha una serie di parametri che potrai impostare tramite la 
sezione ADMIN di Tomcat che ti premetteranno di dire a Tomcat che se i 
file vengono cambiati lui li deve ricompilare.
Ciao,
jRed

 jRed
 
 ho modificato l'esempio Snoop.jsp nella cartella webapps\jsp-examples cambandio
una frase dall'inglese all'italiano ed ho cancellato il relativo .class nella 
cartella webapps\jsp-examples\WEB-INF\classes\org\apache\jsp\snp
Perchè non me lo ricompila ???? 
ho provato anche a fare una nuova applicazione ma mi dà lo stesso errore !!

Stavo rileggendo il post originario...dunque perchè hai messo tomcat in 
una subdirectory!? Anche se non dovrebbe influire molto...quale 
pacchetto hai utilizzato il .zip o il .exe!?
 > Perchè non me lo ricompila ????
 > ho provato anche a fare una nuova applicazione ma mi dà lo stesso 
errore !!
Dunque prova a fare cosi...(procendendo a piccoli passi il più delle 
volte si riesce a risolvere il problema :-D)!
Dalla sezione Admin di Tomcat crea un nuovo Context dando un nome tipo 
tuacartella (le varie impostazioni potresti lasciare quelle di default e 
per DOCBASE e PATH regolati osservando il context ROOT) l'importate 
prova a modificare il parametro sotto LOADER chiamato RELOADABLE e lo 
setti a true. Poi crei nella cartalla che ti si è creata sotto webapps i 
file .jsp e li invochi sempre come detto l'altra volta. Se proprio non 
ti si compilano prova a reinstallare Tomcat direttamente sotto D:\ e 
attieniti strettamente al manuale dell'installazione.
Spero di essere stato d'aiuto,
jRed :-)

 errore !!
non era quello il file class della pagina Snoop.jsp!! I file class
all'interno della Web-inf non sono le jsp compilate, sono le classi usate
dall'applicazione!
I file class delle pagine jsp si trovano dentro
CATALINA_HOME/work/Standalone/directoryapplicazione/ (mi pare)
-- 
Dimux
http://www.128byte.com
Scopri gli errori e i segreti dei tuoi film, album e programmi
preferiti!

 CATALINA_HOME/work/Standalone/directoryapplicazione/ (mi pare)
[cut]
Si si hai ragione, questo particolare mi era sfuggito nella fretta! I 
file .jsp compilati vengono messi li come ha detto Dimux. Mentre dentro 
WEB-INF\classes sono presenti le classi relative alla 
applicazioni...quelle non vengono compilate da Tomcat! ;-)

Dopo 3 giorni di tentativi (ieri sera fino alle 2 di notte) ho finalmente
capito qual'era il problema.
Negli esempi proposti da Tomcat le pagine JSP sono mappate (web.xml) per
puntare agli oggetti .class che si trovano sotto
\webapps\jsp-examples\WEB-INF\classes\org\ecc...
(in pratica sono tratte come le servlet)
Quindi se io modificavo una JSP lui non la ricompilava perchč andava a
prendersi sempre quella a cui puntava.
Cancellando il .class (come avevo detto in precedenza) mi dava errore perchč 
lui continuava a cercarla in quel posto.
Per concludere, ho fatto un'applicazione nuova come mi avevate suggerito
e nel file web.xml non ho messo alcuna mappatura.
Ora le mie pagine JSP funzionano e vengono compilate in
work\Catalina\localhost\mia_applicazione\org\ecc....
Grazie

 work\Catalina\localhost\mia_applicazione\org\ecc....
Bene! Ciao!