Voglio inizializzare un'istanza globale di una classe prima che il mio server Tomcat completi l'avvio e inizi a offrire i miei servlet. Se questo servizio in qualche modo fallisce l'inizializzazione, mi piacerebbe che anche l'intera sequenza di avvio fallisse (o il più vicino possibile a questo, sarebbe inutile che il server funzioni altrimenti). Qual è il modo migliore per farlo?Esiste un modo per eseguire codice durante l'avvio di Apache Tomcat 6.x per eseguire le routine di inizializzazione, ecc.?
risposta
Ad ogni applicazione Web è associato un ServletContext. L'oggetto ServletContext viene creato all'avvio dell'applicazione e distrutto quando l'applicazione viene arrestata. Un servletContext ha un ambito globale ed è simile a una variabile globale in un'applicazione.
http://www.javabeat.net/tips/178-servletcontextlistener-example.html
completa spiegazione qui
Una cosa che si può fare portabile è quella di implementare una servlet che inizializza tutto ciò che serve nel suo metodo init() (e forse chiamare System.exit() se fallisce, non so se sei autorizzato a farlo in Tomcat). Quindi lo caricherai usando <load-on-startup>
nel tuo web.xml
per specificare l'ordine di inizializzazione.
Non è una buona soluzione. Tutti i filtri sono inizializzati prima di tutti i servlet. Quindi i filtri verrebbero inizializzati prima dell'inizializzazione se la classe nella domanda. –
- 1. Come eseguire il codice di inizializzazione per una tavolozza?
- 2. Esiste un modo per eseguire Trac offline?
- 3. Tomcat 6.x Amministrazione
- 4. Sklearn: Esiste un modo per eseguire il debug di Pipelines?
- 5. Esiste un compilatore/interprete per eseguire codice per php 5.3?
- 6. Esiste un modo per eseguire il codice JavaScript all'interno di IDE di Aptana Studio 3?
- 7. modo predefinito di eseguire codice in Haskell
- 8. Esiste un modo per eseguire due animazioni jQuery (correttamente) contemporaneamente?
- 9. Modo consigliato di avvolgere routine di inizializzazione/distruzione C lib.
- 10. Grails eseguire codice per-ambiente
- 11. ruby: il modulo può eseguire automaticamente il codice di inizializzazione?
- 12. Un JMS per Tomcat 6
- 13. Modo elegante per eseguire aritmetica di tuple
- 14. Esiste uno schema XML per il contesto.xml di Tomcat 6?
- 15. Esiste un modo per utilizzare qualcosa come Console.write per eseguire il debug nel codice XNA?
- 16. dichiarazione switch Javascript: esiste un modo per due casi di eseguire lo stesso codice?
- 17. Esiste un modo per eseguire codice non sicuro (disabilitare il gestore della sicurezza) in Java?
- 18. Un modo semplice per eseguire il backport del codice Java 6 su Java 5?
- 19. Come eseguire un codice prima di accedere alla routine main() in VC?
- 20. Esiste un modo per eseguire PHP come una versione precedente di quella installata?
- 21. Eseguire Node.js in apache?
- 22. Modo corretto per i collegamenti per eseguire il codice javascript
- 23. C'è un modo per eseguire codice R da JavaScript?
- 24. Esiste un modo per eseguire il codice scala nel notebook ipython?
- 25. Esiste una routine veloce GetToken per Delphi?
- 26. come eseguire un codice mpi4py di base
- 27. Come posso eseguire un'applicazione Java su Apache 2.2 senza Tomcat?
- 28. Un buon modo per eseguire il debug di nullPointerException
- 29. Utilizzo di dplyr's do per eseguire le repliche di bootstrap
- 30. Eseguire reindirizzamento 301 da http a https in Apache Tomcat
Questo è quello che mi serviva. Grazie per l'aiuto rapido e conciso! – NBJack
puoi contrassegnare la risposta come accettata? aiuterà a convincere gli altri a rispondere quando lo chiedi –