我想在我的Tomcat服務器完成啓動並開始提供我的servlet之前初始化一個類的全局實例。如果這個服務以某種方式失敗了初始化,我想整個啓動順序也會失敗(或者儘可能地接近它;否則服務器將無法運行)。我能做到這一點的最佳方式是什麼?在啓動Apache Tomcat 6.x執行初始化例程等時,是否有執行代碼的方法?
11
A
回答
18
每個Web應用程序都有一個與之關聯的ServletContext。 ServletContext對象在應用程序啓動時創建,並在應用程序關閉時被銷燬。 ServletContext具有全局作用域,與應用程序中的全局變量類似。
http://www.javabeat.net/tips/178-servletcontextlistener-example.html
這裏完整的解釋
2
一兩件事你可以做的可移植性是實現初始化你在它的init需要()方法的一切(一個servlet也許調用System.exit ()如果失敗,我不知道你是否有權在Tomcat中做到這一點)。然後,您將使用web.xml
中的<load-on-startup>
加載它以指定初始化順序。
+0
不是一個好的解決方案。所有過濾器都在所有servlet之前初始化。所以過濾器會在初始化之前初始化,如果問題中的類。 – 2012-05-15 15:13:02
相關問題
- 1. 如何等待啓動線程執行初始化代碼
- 2. 在EJB3.1中執行初始化代碼
- 3. Django初始化後執行代碼
- 4. 在AX 2009中執行代碼對象時未執行初始化時出錯
- 5. 繼承時的Ruby執行代碼類部分初始化
- 6. 在Spring啓動時執行方法
- 7. 可執行初始化
- 8. Java代碼未執行實例方法
- 9. 在啓動過程中執行驅動程序初始化後的操作
- 10. Spring Web應用程序:在啓動時執行一些操作(初始化)
- 11. Excel.Interop在初始化新實例後無法執行
- 12. PlayFramework 2.6.x - 執行應用程序啓動代碼
- 13. 有了Spring,在HIbernate被初始化但應用程序啓動之前,我該如何執行代碼?
- 14. 啓動後在JBoss上執行代碼
- 15. 覆蓋AppDelegate上的初始化 - 防止多次執行代碼
- 16. 在SBT中,如何編寫在初始化時執行的代碼
- 17. 如何在應用程序初始化完成後執行代碼?
- 18. 如何在spark中執行初始化?
- 19. VB.Net只讀屬性被自動初始化而沒有獲取代碼執行
- 20. 如何在應用程序啓動時執行彙編代碼
- 21. 如何在應用程序啓動時執行代碼
- 22. iPhone等待代碼執行
- 23. 在Thread.join()執行後執行相同方法中的代碼
- 24. 初始化一個插件後執行jQuery代碼
- 25. 有沒有辦法檢查代碼是否在TransactionScope中執行?
- 26. Akka onReceive方法是否同時執行?
- 27. Sinatra:在啓動或重新啓動我的應用程序時執行代碼
- 28. angular2調試:斷點只在初始化時沒有被執行
- 29. CKEDITOR的初始化功能未執行
- 30. 執行PS在啓動時
這就是我需要的。感謝您的快速和簡潔的幫助! – NBJack 2010-09-09 20:37:55
你能標記答案爲接受嗎?它會幫助讓別人回答,當你問 – 2010-09-09 20:41:48