我問這個問題前面: Jersey app-run initialization code on startup to initialize application新澤西初始化代碼的webapp後完全啓動
有什麼辦法服務器已經完全初始化Web應用程序後,運行此初始化代碼?我正在運行到我需要的Web應用程序被Tomcat完全啓動之前,我可以運行我的登錄調用一次左右爲難的問題嗎?
我問這個問題前面: Jersey app-run initialization code on startup to initialize application新澤西初始化代碼的webapp後完全啓動
有什麼辦法服務器已經完全初始化Web應用程序後,運行此初始化代碼?我正在運行到我需要的Web應用程序被Tomcat完全啓動之前,我可以運行我的登錄調用一次左右爲難的問題嗎?
有幾個方面的考慮。首先,Jersey作爲一個servlet實現,這就是它被加載的方式。將servlet啓動與servlet上下文啓動分離的最簡單方法是在啓動時不加載它。通過從在web.xml servlet的描述符省略負載上的啓動元件實現此目的。將其設置爲非正面也應起作用。
如果必須在啓動時加載的servlet,但還是要分離它,這是我的情況下,你可能需要編寫一些自定義代碼,我做到了。我想不出任何其他方式。使用某種類型的聽衆 - 一個ServletContextListener或春季ApplicationListener,這取決於你的應用程序究竟是如何設置 - 揭開序幕一個新的線程,將通過使一個HTTP請求到它初始化Jersey servlet外。感覺有點髒,但就像我說的,這是我和我的團隊能想出的唯一的事情。
我結束了與1號要求,而不是其他的呼叫進行呼叫ServletFilter中這樣做。 – Vijay
這聽起來像是你應該重新考慮你的設計... –