2 votes

Comment arrêter l'ensemble de l'application web Java lorsque le servlet ne parvient pas à s'initialiser ?

Je veux que mon application web échoue au démarrage si l'un de mes servlets ne parvient pas à s'initialiser. Je m'attends à ce que si je lève une exception de la part de la fonction Servlet.init() Il n'y a pas d'autre méthode que de faire échouer toute l'application, mais apparemment ce n'est pas le cas. Le conteneur web (Tomcat 7 dans mon cas) ne parvient pas à charger ce servlet particulier, mais l'application est tout de même signalée comme ayant été déployée avec succès.

Il se comporte comme prévu si une exception lancée par exemple à partir de ServletContextListener.contextInitialized() mais pourquoi l'exception levée par la méthode Servlet.init() n'a pas cet effet ?

Existe-t-il un moyen d'arrêter l'application en cas d'erreur d'initialisation d'une servlet ?

3voto

Ramesh PVK Points 7415

Essayez les étapes suivantes :

  1. Gardez votre servlet dans la liste de chargement au démarrage de sorte que votre servlet soit initialisé au démarrage de l'application.
  2. Dans la méthode Servlet.init(), définir un attribut dans ServletContext indiquant que le servlet est initialisé. ex, monServletInité
  3. Mettre en œuvre la méthode ServletContextListener.contextInitialzied(). Vérifier si monServletInité est présent. Si ce n'est pas le cas, une exception est levée, ce qui fait échouer l'application.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X