Methode Init() non executee [Java - Servlet] - Java - Programmation
Marsh Posté le 18-08-2004 à 18:53:19
Ben moi j'en ai aucune idée mais ton super.init () me trouble un peu... J'aurai mis this (config)... Ca changera peut etre rien mais tu peux toujours essayer.
Marsh Posté le 18-08-2004 à 21:46:29
nartu > tu es sur que ça lève pas d'exception dans le init ? que tu mets pas le truc à null toi-mêmem ailleur dans le code ?
patachou > do you smoke the grass ?
Marsh Posté le 18-08-2004 à 23:24:57
habituellement, on surcharge init() et pas init(ServletConfig), ca évite d'avoir à se faire chier à appeler le super.init(ServletConfig), et t'as directement accès au servletConfig (HttpServlet implémente ServletConfig).
Mai sbon, ca explique pas ton problème. T'es spur que tu passes pas dedans ? t'as essayé de faire un System.out.println("dans le init" ) pour vérifier que tu ne passait effectivement pas dedans ?
Marsh Posté le 19-08-2004 à 01:07:08
plus qu'habituellement c'est comme ça qu'il est conseillé de faire, même
http://java.sun.com/j2ee/sdk_1.3/t [...] tml#init()
Marsh Posté le 19-08-2004 à 09:17:43
the real moins moins a écrit : plus qu'habituellement c'est comme ça qu'il est conseillé de faire, même |
je sais ... mais y a rien d'obligé ... d'autant que c'est apparu dans les servler 2.2 ou 2.3, ca existait pas au début.
Marsh Posté le 19-08-2004 à 09:48:35
j'ai fait un System.out.println(tmp) dans le init() mais rien ne s'affiche...
j'ai aussi utilise la methode log() pour afficher les messages d'erreurs eventuels, mais rien ne s'affiche non plus
Marsh Posté le 19-08-2004 à 10:13:19
Et tu est sûr que c'est bien cette servlet là qui est appelée quand tu fais ta touche Http ? parce que ce que tu nous dis là c'est pas possible ! Si t'as servlet n'est pas initialisée, elle ne peut pas être appelée. Et si elle est initialisé, tu passes forcément dans le init(ServletConfig).
Bref, ca sent l'erreur à la con !
T'as pas moyen d'utiliser un débuggueur ?
Marsh Posté le 19-08-2004 à 11:13:47
j'ai qu'une servlet donc je peux pas me tromper, mais je dois effectivement passer par le init(), mais les valeurs initialisees dans le init() sont perdues dans le doGet()
doit y avoir un truc tout con pour regler ca
Marsh Posté le 19-08-2004 à 14:17:11
nartu elxe a écrit : j'ai qu'une servlet donc je peux pas me tromper, mais je dois effectivement passer par le init(), mais les valeurs initialisees dans le init() sont perdues dans le doGet() |
si tu passes dans le init, tu devrais avoir un truc dans les logs nan ?
Sans plus de précision, on peut pas t'aider là dessus
Marsh Posté le 19-08-2004 à 16:53:40
bon, ca marche mais je saurais pas dire pourquoi (j'suis parti du code helloworld en inserant ptit a ptit toutes mes lignes de code...)
Marsh Posté le 25-08-2004 à 19:33:38
faut voir dans ton web.xml
load on startup
<servlet>
<servlet-name>NameServlet</servlet-name>
<servlet-class>package.NameServlet</servlet-class>
<load-on-startup>N</load-on-startup>
</servlet>
N=entier l'ordre , si ya plusieur servlets avec init()
sinon 1
Marsh Posté le 25-08-2004 à 21:52:55
rien à voir. load-on-startup permet juste de "précharger" une servlet. Dans tous les cas, une servlet est chargée (méthode init appelée) si une requête doit être executée par cette servlet.
Marsh Posté le 25-08-2004 à 22:06:27
ha non non, la methode init est appellée au startup avec ça. on faisait comme ça pour demarrer ou configurer du bordel avant d'avoir les ServletContextListener...
Marsh Posté le 25-08-2004 à 22:06:57
euh ouais enfin bon, c'est pê pas ça que tu réfutais remarque.
Marsh Posté le 25-08-2004 à 22:14:57
the real moins moins a écrit : euh ouais enfin bon, c'est pê pas ça que tu réfutais remarque. |
ben non, je disais juste que le fait qu'il y ait pas de load-on-startup ne pouvais pas expliqué que le init() ne soit pas appelé alors que la servlet se prend une requête
Marsh Posté le 25-08-2004 à 23:31:40
oui ben à mon avis son init etait appelé depuis le debut mais il avait des variables locales à sa methodes et non à la classe ou une connerie comme ça
Marsh Posté le 18-08-2004 à 17:22:45
Dans ma servlet, j'utilise les methodes init() et doGet(). Cependant, les parametres initialises dans init() sont consideres comme "null" dans doGet().
y a moyen de forcer l'execution de init() ?
Version tomcat : 4.1.30
Code Servlet :
Message édité par nartu elxe le 18-08-2004 à 17:24:54