Charger au Démarrage à l'aide de l'Annotation en JAVA
J'ai ce code,
@WebServlet(value="/initializeResources", loadOnStartup=1)
public class InitializeResources extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("HEREEEE");
}
}
Mais la servlet ne démarre pas lorsque l'application web est démarré.
Comment utiliser charger au démarrage sur Servlet Annotation?
Ma Servlet API 3.0 et j'utilise Tomcat 7
Quelle est la version de l'API Servlet est votre conteneur à l'aide? Comment est votre application installée dans le conteneur? (L'annotation semble correct, alors le problème est probablement avec votre conteneur de configuration.)
Merci pour votre soutien. Ma Servlet version de l'API est de 3,0 et j'utilise tomcat 7. Je déployer mon application sur IntelliJ IDEA 12.1.4, à l'aide de la guerre a éclaté.
Pouvez-vous montrer votre web.xml?
Mon web.xml est vide. Je ne l'utilise pas parce que toutes les annotations.
Cette Annotation résoudre mon problème: @WebServlet(name="InitializeResources", urlPatterns="/initializeResources", loadOnStartup=1) je ne sais pas pourquoi, mais il a travaillé.
Merci pour votre soutien. Ma Servlet version de l'API est de 3,0 et j'utilise tomcat 7. Je déployer mon application sur IntelliJ IDEA 12.1.4, à l'aide de la guerre a éclaté.
Pouvez-vous montrer votre web.xml?
Mon web.xml est vide. Je ne l'utilise pas parce que toutes les annotations.
Cette Annotation résoudre mon problème: @WebServlet(name="InitializeResources", urlPatterns="/initializeResources", loadOnStartup=1) je ne sais pas pourquoi, mais il a travaillé.
OriginalL'auteur Diego Alves | 2013-09-15
Vous devez vous connecter pour publier un commentaire.
Avec vous code actuel, vous devez faire une requête GET pour voir la sortie
HEREEEE
.Si vous voulez faire quelque chose sur le démarrage de la servlet (c'est à dire l'élément
loadOnStartup
avec une valeur supérieure ou égale à zéro,0
), vous devez mettre le code dans une méthode init ou dans le constructeur de la servlet:Il peut être plus pratique d'utiliser un écouteur pour démarrer une ressource dans le la portée de l'application (dans le
ServletContext
).Pour un exemple, voir ma réponse pour la question Partager des variables entre JAX-RS demandes.
OriginalL'auteur Paul Vargas
urlPatterns à s'assurer que le web conatainer trouve le chemin de la servlet.
OriginalL'auteur Iljaminati
Quand
loadOnStartup
est spécifié pour une Servlet, le conteneur uniquement de la charge et de pré-instancier une instance de votre Servlet prêts à traiter toute GET/POST demandes qui peuvent venir. Cela, en soi, ne serait pas causer dedoGet()
oudoPost()
à faire virer parce que d'une réelle demande du client n'est pas venu pour le traitement encore. Alors, quelle est son utilisation?Bien,
loadOnStartup
est généralement utilisé pour les Servlets qui ont la lourde code d'initialisation; dire, ils peuvent faire un JNDI appel pour obtenir la main d'une ressource ou d'une Base de données d'appel pour remplir un local de la structure de données avec certains backend valeurs. En l'absence deloadOnStartup
la première demande du client pourrait être douloureusement lent à cause de ce surplus d'initialisation des trucs et donc pré-instanciation du sens.Maintenant, personnalisé de votre code d'initialisation (JNDI, JDBC) irait dans un surchargée
GenericServlet#init()
méthode qui est appelée par le conteneur de servlet pour indiquer à une servlet qu'il soit mis en service.OriginalL'auteur Ravi Thapliyal