我無法找到有關是否確保嵌入式Jetty Server完全初始化並準備好在Server.start()調用返回時接收請求的任何信息。當Server.start()調用返回時,嵌入式Jetty服務器是否保證「準備就緒」?
我也沒有能夠通過調試找到任何確鑿的結果。
如果服務器在呼叫返回時可能仍在初始化自己,是否有任何方法來註冊回調,以便在確實可以採取行動時通知我?
我無法找到有關是否確保嵌入式Jetty Server完全初始化並準備好在Server.start()調用返回時接收請求的任何信息。當Server.start()調用返回時,嵌入式Jetty服務器是否保證「準備就緒」?
我也沒有能夠通過調試找到任何確鑿的結果。
如果服務器在呼叫返回時可能仍在初始化自己,是否有任何方法來註冊回調,以便在確實可以採取行動時通知我?
是的,從Server.start()
返回時,服務器已準備就緒。
您可以使用Server.addLifeCycleListener(listener)
註冊LifeCycle.Listener
以獲得啓動或關閉事件的通知。如果你看看Server.start()
的來源,你會發現它最後稱爲Listener.lifeCycleStarted()
。
不是一個完整的答案,但可能取決於servlet是否可以「在啓動時加載」?
好點。 如果啓用「啓動時加載」,當方法返回時,假設Jetty將加載/初始化它們是否安全? – svjson 2010-12-20 09:56:35
是的,我已經研究了源並看到了這一點。然而,事件被推送到任何附加的偵聽器,就像服務器狀態被提升爲「STARTED」一樣,並且方法返回。 如果Servlets /資源被初始化並準備好在這一點工作是另一個問題。通過使用斷點,我能夠在Jetty處理請求的狀態下「凍結」,但不初始化servlet。 雖然,當狀態設置爲「STARTED」時,我還無法弄清服務器是否可以保持在這種狀態。 – svjson 2010-12-20 09:53:01