2015-10-27 17 views
1

我有一個Jetty服務器上的Web應用程序,它使用外部服務(從另一個服務器加載數據,連接到一個外部套接字接收數據等)和websockets來傳遞事件並將數據發送給客戶。我需要的是從一個生產版本切換到另一個(假設我的應用程序具有FirstApp.xml上下文配置文件和2個戰爭:AppVer1.war和AppVer2.war)而沒有停機時間(甚至1秒),並且沒有關閉套接字連接和客戶端的websockets。這可能與碼頭?碼頭切換戰爭版本(應用上下文)沒有停機

Obs。從其他服務器加載數據並創建一個套接字連接是在一個servlet類中進行的,所以也許還有其他類型的組件應該使用?

編輯:我使用碼頭9.3.5

+0

您正在使用哪個版本的[tag:jetty]? – Eric

+0

嗨,我使用Jetty 9.3.5(我編輯了我的文章)。 –

回答

0

一旦收到請求時,一個HttpServletRequest和路由到特定的ServletContext(Web應用程序)發生。

這對於普通的HTTP請求是正確的,並且也升級了WebSocket請求。

無法在活動請求期間換出web應用程序(可能適用於所有Servlet容器)。 AppVer1的ServletContext必須經歷其生命週期並銷燬其所有過濾器/小服務程序,以及使ServletContext無效的請求,從而關閉活動請求。

也許你應該改變你的WebApp體系結構,這樣你就可以在前端創建一個簡單的外觀來處理請求和請求路由,但應用程序邏輯的肉在其他地方完成,而不是WebApp的一部分。這可以讓你控制你正在尋找。

+0

EAR(企業)體系結構將如何提供幫助? –