| View previous topic :: View next topic |
| Author |
Message |
cccc Guest
|
Posted: Thu May 20, 2004 7:43 am Post subject: Thread java in Tomcat |
|
|
Salve a tutti,
ho la necessità di avviare un programma java (un thread) all'avvio di
Tomcat. Prima ancora che venga richiesta una pagina jsp.
E' possibile?
Ciao,
CC
|
|
| Back to top |
|
 |
Renato Eschini Guest
|
Posted: Thu May 20, 2004 7:59 am Post subject: Re: Thread java in Tomcat |
|
|
"cccc" <ccamussonoparty (AT) libero (DOT) it> ha scritto nel messaggio
news:c8hnik$gq0$1 (AT) lacerta (DOT) tiscalinet.it...
| Quote: | Salve a tutti,
ho la necessità di avviare un programma java (un thread) all'avvio di
Tomcat. Prima ancora che venga richiesta una pagina jsp.
E' possibile?
Si, |
1) Creati il thread
2) Crea una servlet di startup nella tua webapp
3) Nella init della servlet di startup lancia il thread
4) Se il thread è un demone, nel senso che è un while(true) sostanzialmente,
nella destroy della servlet interrompi il thread
Hint:se il thread è un demone attento alla sua interruzione.
--
Ciao e buon lavoro,
Renato
----
Renato Eschini
Inera srl
Via Vespucci 41
56100 Pisa
Tel: (+39) (0)50 2201218
WWW: http://www.inera.it
|
|
| Back to top |
|
 |
cccc Guest
|
Posted: Thu May 20, 2004 8:43 am Post subject: Re: Thread java in Tomcat |
|
|
| Quote: | 2) Crea una servlet di startup nella tua webapp
|
Sai dove potrei torvare qualche info a riguardo?
Grazie per l'aiuto.
CC
|
|
| Back to top |
|
 |
Renato Eschini Guest
|
Posted: Thu May 20, 2004 9:02 am Post subject: Re: Thread java in Tomcat |
|
|
"cccc" <ccamussonoparty (AT) libero (DOT) it> ha scritto nel messaggio
news:c8hr4k$lc9$1 (AT) lacerta (DOT) tiscalinet.it...
| Quote: |
2) Crea una servlet di startup nella tua webapp
Sai dove potrei torvare qualche info a riguardo?
Grazie per l'aiuto.
CC
Cerca load-on-startup su google. |
E' il tag che va nella dichiarazione della servlet nel web.xml, dice al
container che quella servlet va istanziata allo startup della webapp
--
Ciao e buon lavoro,
Renato
----
Renato Eschini
Inera srl
Via Vespucci 41
56100 Pisa
Tel: (+39) (0)50 2201218
WWW: http://www.inera.it
|
|
| Back to top |
|
 |
cccc Guest
|
Posted: Thu May 20, 2004 9:04 am Post subject: Re: Thread java in Tomcat |
|
|
| Quote: | Cerca load-on-startup su google.
E' il tag che va nella dichiarazione della servlet nel web.xml, dice al
container che quella servlet va istanziata allo startup della webapp
|
Grazi,
sei stato prezioso.
CC
|
|
| Back to top |
|
 |
Lucio Benfante Guest
|
Posted: Thu May 20, 2004 3:33 pm Post subject: Re: Thread java in Tomcat |
|
|
On Thu, 20 May 2004 09:59:45 +0200, Renato Eschini wrote:
| Quote: | "cccc" <ccamussonoparty (AT) libero (DOT) it> ha scritto nel messaggio
news:c8hnik$gq0$1 (AT) lacerta (DOT) tiscalinet.it...
Salve a tutti,
ho la necessità di avviare un programma java (un thread) all'avvio di
Tomcat. Prima ancora che venga richiesta una pagina jsp.
E' possibile?
Si,
1) Creati il thread
2) Crea una servlet di startup nella tua webapp
3) Nella init della servlet di startup lancia il thread
4) Se il thread è un demone, nel senso che è un while(true) sostanzialmente,
nella destroy della servlet interrompi il thread
|
Secondo me sarebbe meglio usare un ServletContextListener, che serve
proprio a quello e non dipende dal particolare Web Container (Tomacat).
--
Lucio Benfante
Java User Group Padova: http://www.jugpadova.it
Brainbench MVP for Java 1: http://www.brainbench.com
MyTranscript: http://www.brainbench.com/transcript.jsp?pid=167064
|
|
| Back to top |
|
 |
Vincent Vega Guest
|
Posted: Thu May 20, 2004 4:20 pm Post subject: Re: Thread java in Tomcat |
|
|
cccc wrote:
| Quote: | ho la necessità di avviare un programma java (un thread) all'avvio di
Tomcat. Prima ancora che venga richiesta una pagina jsp.
E' possibile?
|
ServletContextListener ha un evento all'avvio della webapp.
|
|
| Back to top |
|
 |
Simone Pierazzini Guest
|
Posted: Wed May 26, 2004 10:54 am Post subject: Re: Thread java in Tomcat |
|
|
Renato Eschini wrote:
| Quote: | "cccc" <ccamussonoparty (AT) libero (DOT) it> ha scritto nel messaggio
news:c8hnik$gq0$1 (AT) lacerta (DOT) tiscalinet.it...
Salve a tutti,
ho la necessità di avviare un programma java (un thread) all'avvio di
Tomcat. Prima ancora che venga richiesta una pagina jsp.
E' possibile?
Si,
1) Creati il thread
|
ma e' lecito crearsi thread da una servlet tomcat?
pensavo di no! (ma non saprei dire perche')
bye
Touch
|
|
| Back to top |
|
 |
Renato Eschini Guest
|
Posted: Wed May 26, 2004 1:56 pm Post subject: Re: Thread java in Tomcat |
|
|
Che intendi per "ma e' lecito crearsi thread da una servlet tomcat"?
I modi suggeriti da Lucio Benfante e Vincent Vega mi sembrano più puliti del
mio, puliti nel senso che si utilizza un evento dedicato allo startup della
webup piuttosto che una servlet dedicata che viene lanciata all'avvio, cmq
nn vedo cosa ci sia di illecito :S.
Cmq piu' che creare è inteso come fare lo start del thread....
A te la parola .....;)
--
Ciao e buon lavoro,
Renato
----
Renato Eschini
Inera srl
Via Vespucci 41
56100 Pisa
Tel: (+39) (0)50 2201218
WWW: http://www.inera.it
"Simone Pierazzini" <s.pierazzini (AT) metaware (DOT) it> ha scritto nel messaggio
news:c91lte$55d$1 (AT) serv1 (DOT) iunet.it...
| Quote: | Renato Eschini wrote:
"cccc" <ccamussonoparty (AT) libero (DOT) it> ha scritto nel messaggio
news:c8hnik$gq0$1 (AT) lacerta (DOT) tiscalinet.it...
Salve a tutti,
ho la necessità di avviare un programma java (un thread) all'avvio di
Tomcat. Prima ancora che venga richiesta una pagina jsp.
E' possibile?
Si,
1) Creati il thread
ma e' lecito crearsi thread da una servlet tomcat?
pensavo di no! (ma non saprei dire perche')
bye
Touch
|
|
|
| Back to top |
|
 |
Simone Pierazzini Guest
|
Posted: Mon Oct 04, 2004 3:32 pm Post subject: Re: Thread java in Tomcat |
|
|
Renato Eschini wrote:
| Quote: | Che intendi per "ma e' lecito crearsi thread da una servlet tomcat"?
I modi suggeriti da Lucio Benfante e Vincent Vega mi sembrano più puliti del
mio, puliti nel senso che si utilizza un evento dedicato allo startup della
webup piuttosto che una servlet dedicata che viene lanciata all'avvio, cmq
nn vedo cosa ci sia di illecito :S.
Cmq piu' che creare è inteso come fare lo start del thread....
A te la parola .....
|
rispondo anche privatamente perche' mi ero completamente di menticato di
questo post che e' di maggio e lo vedo solo ora che siamo ad ottobre
riguardo allo startup sono d'accordo con l'uso del listener
la mia domanda deriva piu' che altro da dover eseguire compiti
"asincroni". cioe' il browser esegue una query, la webapp restituisce
una pagina di attesa (magari con un pulsante "refresh" per sapere a che
punto stanno le cose) e nel frattempo continua il suo lavoro.
poiche' la servlet una volta generata la pagina restituisce il controllo
al container, e' necessario un thread che continui il lavoro. a questo
punto avro' un pool di thread.
in realta' suppongo che la soluzione "vera" al problema sia JMS ma devo
ancora studiarlo.
il fatto e' che un servlet container ha gia' il suo pool di workers
(sono quelli che eseguono il codice della servlet poi) e potrebbe fare
assunzioni di vario tipo sul classloader di questi, e eventuali thread
creati invece dal codice della servlet potrebbero non essere
correttamente inizializzati per operare sugli oggetti del servlet
container (tipo HttpSession).
sono quasi sicuro che Weblogic abbia controindicazioni sulla creazione
di thread o ponga dei limiti su quello che questi possano fare, tomcat o
altri non saprei. da qui la domanda.
ciao
Simone
|
|
| Back to top |
|
 |
n.n Guest
|
Posted: Mon Oct 04, 2004 3:54 pm Post subject: Re: Thread java in Tomcat |
|
|
| Quote: | sono quasi sicuro che Weblogic abbia controindicazioni sulla creazione
di thread o ponga dei limiti su quello che questi possano fare, tomcat o
altri non saprei. da qui la domanda.
ciao
Simone
|
il punto e' che la servlet viene invocata tramite doservice/doget/dopost dal
servlet container ( ad esempio tomcat).
1. la memoria e in generale l'intero processo e' sotto il controllo del
container, che in teoria puo' disttruggerlo e dovrebbe distruggere i thread
che genera allo scadere della session.
2. Se sei asd esempio in balancing o tolerance risponde a caso uno dei
container, e generare un thread non e' una operazione granche corretta a
quel punto.
Le 2 strade suggerite dagli altri sono corrette perche la servlet a quel
punto la puoi vedere come una specie di plugin del container e si avvia su
tutte le sue eventuali istanze e non e' legata ad una session.
Nicola
--------------------------------
Inviato via http://arianna.libero.it/usenet/
|
|
| Back to top |
|
 |
|