Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2356 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [TOMCAT] Déclencher l'appel de la méthod init d'une servlet. [RESOLU]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[TOMCAT] Déclencher l'appel de la méthod init d'une servlet. [RESOLU]

n°533266
bartleby
Posté le 07-10-2003 à 14:31:03  profilanswer
 

Bonjour à tous,
 
Il me semble que la méthode "init()" d'une servlet est appellé lors de l'instanciation de celle-ci, c'est a dire lors de la 1er requete HTTP vers le container qui la gere.
 
Il me semblait egalement que dans le fichier de proprietes "web.xml", on pouvait spécifier l'instanciation de certaines classes.
 
Je suis face à un "probleme": Lorsque je demarre un serveur TOMCAT(Apache Tomcat/4.0.6) (application COFAX), lors du demarrage et sans aucune requete HTTP,  la webapp initialise tout un tas de trucs depuis une method "init" de l'une de ses servlets.
 
Comment est-ce possible sans rien spécifier dans web.xml ?!
Je precise qu'il y a toutefois des "init-parameters" dans le web.xml mais il ne me semble pas que cela puisse declencher un init dans les servlets...
La méthode init ne devrait etre appelée que lors de l'instanciation de la servlet, c'est a dire lors du 1er appel HTTP.....


Message édité par bartleby le 07-10-2003 à 14:50:49
mood
Publicité
Posté le 07-10-2003 à 14:31:03  profilanswer
 

n°533269
El_gringo
Posté le 07-10-2003 à 14:35:39  profilanswer
 

bartleby a écrit :

Bonjour à tous,
 
Il me semble que la méthode "init()" d'une servlet est appellé lors de l'instanciation de celle-ci, c'est a dire lors de la 1er requete HTTP vers le container qui la gere.
 
Il me semblait egalement que dans le fichier de proprietes "web.xml", on pouvait spécifier l'instanciation de certaines classes.
 
Je suis face à un "probleme": Lorsque je demarre un serveur TOMCAT(Apache Tomcat/4.0.6) (application COFAX), la webapp initialise tout un tas de trucs depuis une method "init" de l'une de ses servlets.
 
Comment est-ce possible sans rien spécifier dans web.xml ?!
La méthode init ne devrait etre appelée que lors de l'instanciation de la servlet, c'est a dire lors du 1er appel HTTP.....
 


 
Dans ton web.xml, tu déclares chaque servlet dans des balises <servlet>
Comme ceci :


    <servlet>
        <!-- Servlet principale : gère les connexions, changements d'application et de document courant -->
        <servlet-name>MaServlet</servlet-name>
        <servlet-class>com.maboite.ldsweb.MaServlet</servlet-class>
 
        <!-- Load this servlet at server startup time -->
        <load-on-startup>1</load-on-startup>
    </servlet>


 
Le 1 de <load-on-startup> veut dire que cette servlet est instanciée en premier au lancement du serveur (parmis les servlets de la web-app).
Essaye de jouer sur load-on-startup : soit mettre 0, soit ne pas l'préciser, j'sais pas trop...

n°533282
bartleby
Posté le 07-10-2003 à 14:44:26  profilanswer
 

Il me semblait que le tag <load-on-startup>, n'influencait que pour l'ordre de lancement (en somme qu'il ne declenchait pas lui-meme un chargement au demarrage)....
 
OK, merci bcp ;)


Message édité par bartleby le 07-10-2003 à 14:53:49
n°533288
bartleby
Posté le 07-10-2003 à 14:51:28  profilanswer
 

Bon, aprés avoir consulté les spécifications Servlet 1.3 ( c'est ce que j'aurai du commencer par faire), voici ce qui est écrite:
 
<!ELEMENT listener-class (#PCDATA)>
<!--
The load-on-startup element indicates that this servlet should be
loaded (instantiated and have its init() called) on the startup
of the web application. The optional contents of
these element must be an integer indicating the order in which
the servlet should be loaded. If the value is a negative integer,
or the element is not present, the container is free to load the
servlet whenever it chooses. If the value is a positive integer
or 0, the container must load and initialize the servlet as the
application is deployed. The container must guarantee that
DEPLOYMENT DESCRIPTOR
102
servlets marked with lower integers are loaded before servlets
marked with higher integers. The container may choose the order
of loading of servlets with the same load-on-start-up value.
Used in: servlet
-->
 
Donc, dès que le tag est présent, init est appelé (car la classe est instanciée), le nombre, s'il est present, precise un ordre...


Message édité par bartleby le 07-10-2003 à 14:52:19
n°533289
El_gringo
Posté le 07-10-2003 à 14:51:42  profilanswer
 

bartleby a écrit :

Il me semblait que le tag <load-on-startup>, n'influencait que pour l'ordre de lancement (en somme qu'il ne declanchait pas lui-meme un chargement au demarrage)....
 
OK, merci bcp ;)


 
De rien. T'as vérifié, c bien ça ? en n'le précisant pas ?

n°533291
bartleby
Posté le 07-10-2003 à 14:52:55  profilanswer
 

Oui, j'ai edité jsute au dessus ;) merci encore!

n°533293
El_gringo
Posté le 07-10-2003 à 14:54:40  profilanswer
 

bartleby a écrit :

Bon, aprés avoir consulté les spécifications Servlet 1.3 ( c'est ce que j'aurai du commencer par faire), voici ce qui est écrite:
 
<!ELEMENT listener-class (#PCDATA)>
<!--
The load-on-startup element indicates that this servlet should be
loaded (instantiated and have its init() called) on the startup
of the web application. The optional contents of
these element must be an integer indicating the order in which
the servlet should be loaded. If the value is a negative integer,
or the element is not present, the container is free to load the
servlet whenever it chooses. If the value is a positive integer
or 0, the container must load and initialize the servlet as the
application is deployed. The container must guarantee that
DEPLOYMENT DESCRIPTOR
102
servlets marked with lower integers are loaded before servlets
marked with higher integers. The container may choose the order
of loading of servlets with the same load-on-start-up value.
Used in: servlet
-->
 
Donc, dès que le tag est présent, init est appelé (car la classe est instanciée), le nombre, s'il est present, precise un ordre...


 
Oui, et ...?
c quoi ton problème exactement ?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [TOMCAT] Déclencher l'appel de la méthod init d'une servlet. [RESOLU]

 

Sujets relatifs
Faire 1 recherche sur 1 frame dans 1 autre frame [Résolu, code déposé]prob avec firebird [résolu]
Resolu [C] Probleme de resultat de calcul[resolu] fonction choice
Help ! pige pas... [résolu][resolu] syntaxe en couleur
Urgent... Multiples instances TomcatJakarta Tomcat : probleme d'execution
[debutant][Resolu]Passer la page suivante ?[Algo] Rollercoaster part II [presque resolu le prob voir en bas]
Plus de sujets relatifs à : [TOMCAT] Déclencher l'appel de la méthod init d'une servlet. [RESOLU]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR