Newsgroup: it.comp.java
Titolo: Problema con Tomcat

Ho il seguente problema con Tomcat:
ogni volta che modifico i javaBeans nella cartella
WEB-INF/classes e li ricompilo devo per forza 
riavviare Tomcat, altrimenti se ricarico direttamente
l'applicazione mi da' l'errore sotto riportato.
Questo errore si verifica solo quando modifico le classi e non quando
modifico le pagine jsp.
Internal Servlet Error:
java.lang.IllegalStateException: Can't happen - classname is null, who
added this ?
at
org.apache.tomcat.core.ServletWrapper.loadServlet(ServletWrapper.java:261)
at org.apache.tomcat.core.ServletWrapper.init(ServletWrapper.java:289)
at org.apache.tomcat.core.Handler.service(Handler.java:254)
at
org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
at
org.apache.tomcat.core.ContextManager.handleStatus(ContextManager.java:1075)
at
org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:784
at
org.apache.tomcat.core.ContextManager.service(ContextManager.java:752)
at
org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:213)
at
org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
at
org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:501)
at java.lang.Thread.run(Thread.java:536)
La ver di Tomcat che uso e' la 3.2.4
Qualcuno sa dirmi a cosa e' dovuto e se c'e' un modo per evitarlo,
escluso quello di riavviare Tomcat?
Grazie a tutti.


devi per forza riavviare tomcat in quanto le servlet si caricano in memoria
la prima volta che le usi e poi restano li per essere utilizzate, se cambi
il codice per rieseguirlo devi per riavviare tomcat
cio non avviene con le pagine jsp perchè vengono processate a tempo
di esecuzione
ciao

 Servlet vere e proprie. E' questo il punto forte della tecnologia JSP.
Fatto sta che la procedura sopra descritta e' vera: se modifichi il sorgente
di una JSP non c'è bisogno di riavviare Tomcat. Non so bene come funzioni,
ma se e' vero anche quello che dici tu, allora significa che Tomcat si
accorge delle modifiche e ricompila solo se la JSP e' stata modificata
dall'ultima esecuzione.



Il fatto e' che se le pagine JSP rimangono istanziate come servlet e
tutte le variabili reference istanziate al loro interno non possono
essere cambiate dinamicamente non appena ricompili le classi: molto
semplicemente devi reistanziare le JSP se vuoi che le classi appena
compilate siano puntate correttamente.
LA JVM non fa ancora i miracoli.....

compilate siano puntate correttamente.
Grazie, mi sei stato molto utile.
Reinstanziare significa salvare di nuovo le pagine jsp che usano le
classi che ho modificato (anche se in queste non ho fatto alcuna
modifica), in modo che le servlet vecchie vengano sostituite?
Questo mi eviterebbe quell'errore senza riavviare tomcat?
ciao

On Wed, 03 Jul 2002 10:40:51 GMT, Ros_ <jig...@TOGLIMIbipieltel.it>
wrote:

Si, questo funziona con qualsiasi oggetto istanziato direttamente o
indirettamente dalla tua pagina JSP.
Fai attenzione se lavori con metodi statici o variabili statiche: in
questo caso tali metodi o variabili vengono istanziati (e quindi
caricati) solamente al'avvio del server.
Non so, pero', cosa succede quando metodi e variabili statici si
trovano all'interno di classi istanziate dalla JSP. Questo lo lascio
da provare a te.
Ciao.