Quiero inicializar una instancia global de una clase antes de que mi servidor Tomcat complete el inicio y comience a ofrecer mis servlets. Si este servicio de alguna manera falla la inicialización, me gustaría que toda la secuencia de inicio también falle (o tan cerca de esto como sea posible; de lo contrario, no tendría sentido que el servidor se ejecute). ¿Cuál es la mejor manera de lograr esto?¿Existe alguna forma de ejecutar código durante el arranque de Apache Tomcat 6.x para realizar rutinas de inicialización, etc.?
Respuesta
Cada aplicación web tiene asociado un ServletContext. El objeto ServletContext se crea cuando la aplicación se inicia y se destruye cuando la aplicación se apaga. Un ServletContext tiene un alcance global y es similar a una variable global en una aplicación.
http://www.javabeat.net/tips/178-servletcontextlistener-example.html
explicación completa aquí
Una cosa que puede hacer de forma portátil es implementar un servlet que inicializa todo lo necesario en su método init() (y tal vez llamar System.exit() si falla, no sé si tienes permiso para hacer esto en Tomcat). Luego la cargará usando <load-on-startup>
en su web.xml
para especificar el orden de inicialización.
No es una buena solución. Todos los filtros se inicializan antes de todos los servlets. Entonces los filtros se inicializarían antes de la inicialización si la clase en la pregunta. –
- 1. Administración de Tomcat 6.x
- 2. ¿Hay alguna manera de ejecutar un método/clase solo en el arranque de Tomcat/Wildfly/Glassfish?
- 3. ¿Cómo ejecutar el código de inicialización para una paleta?
- 4. ¿Existe alguna forma de validar el código jQuery?
- 5. ruby: ¿el módulo puede ejecutar el código de inicialización automáticamente?
- 6. ClassCircularityError al ejecutar Tomcat 6 desde Eclipse
- 7. ¿Hay alguna manera de pedirle al Kernel de Linux que vuelva a ejecutar su código de inicialización de PCI?
- 8. ¿Cómo ejecutar Tomcat 6 en WinXP 64 bit?
- 9. Acceso a stdin durante el arranque systemd
- 10. Realizar Trim() durante el uso de Split()
- 11. ¿Hay alguna forma de 'resaltar' el código?
- 12. Compilar el código de Scala 2.8.x con Apache Buildr
- 13. ¿Hay alguna forma de ejecutar el código php en un sandbox desde dentro de php
- 14. ¿Existe alguna forma mejor de escribir un método de "cadena contiene X"?
- 15. ¿Cómo puedo ejecutar el código de inicialización para una función de generador inmediatamente, en lugar de ejecutar la primera llamada?
- 16. Cómo capturar Tomcat arranque ingrese
- 17. ¿Existe alguna forma más elegante de calcular x = (y/n) + (y% n? 1: 0)?
- 18. Tomcat 6 en Windows 7
- 19. ¿Existe alguna forma mejor de actualizar WebView?
- 20. Apache Tomcat Catalina Registros
- 21. ¿Existe alguna forma programática para identificar palabras reservadas de C#?
- 22. Apache Tomcat Request Threads
- 23. Rutinas de cuadratura para densidades de probabilidad
- 24. ¿Existe una mala práctica para ejecutar código en el constructor?
- 25. ¿Existe alguna documentación definitiva sobre Apache Cassandra?
- 26. extensiones PHP no se carga en el arranque de Apache
- 27. Configuración de Apache/MySQL/PHP compartida en arranque múltiple
- 28. ¿Tomcat requiere Apache httpd?
- 29. ¿Existe alguna manera de que Rails 3.0.x pueda usar de forma predeterminada Thin?
- 30. Pass VM argumento para Apache Tomcat
Eso es lo que necesitaba. Gracias por la ayuda rápida y concisa! – NBJack
puede marcar la respuesta como aceptada? Ayudará a que otros respondan cuando solicite –