Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Problema con Tomcat

0 views
Skip to first unread message

Ros_

unread,
Jun 30, 2002, 12:04:12 PM6/30/02
to
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.

Huntercity

unread,
Jul 1, 2002, 3:31:54 PM7/1/02
to
"Ros_" <jig...@TOGLIMIbipieltel.it> ha scritto nel messaggio
news:sv9uhuki409blb1g0...@4ax.com...

> 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.
>
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


Andrea

unread,
Jul 2, 2002, 7:02:22 AM7/2/02
to

Questo non e' vero!! Le JSP vengono precompilate per diventare delle
Servlet vere e proprie. E' questo il punto forte della tecnologia JSP.
>
>ciao
>
>

Marted

unread,
Jul 2, 2002, 7:11:51 AM7/2/02
to
> >> 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.


> >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


> Questo non e' vero!! Le JSP vengono precompilate per diventare delle
> 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.


Andrea

unread,
Jul 2, 2002, 7:21:18 AM7/2/02
to

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.....

Ros_

unread,
Jul 3, 2002, 6:40:51 AM7/3/02
to
On Tue, 02 Jul 2002 11:21:18 GMT, antispam...@libero.it (Andrea)
wrote:

>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.

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

Andrea

unread,
Jul 5, 2002, 5:44:25 AM7/5/02
to
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.

0 new messages