取得領先優勢
VMware 提供培訓和認證來加速您的進度。
瞭解更多自 Spring Dynamic Modules 的第一個里程碑以來,開始收到在 OSGi 中執行 Web 應用程式的請求。 它可能是最受歡迎的功能之一,而且毫無疑問,一旦發布 1.0 正式版,Web 支援已成為 1.1 分支的主要重點。 我很高興地報告,隨著剛發布的 M2,正如 Juergen 暗示的那樣,Spring-DM 不僅支援普通的 war 檔(自 1.1.0 M1 以來可用),還支援在 OSGi 中運行的 Spring-MVC 應用程式。 在這篇文章中,我想簡要地討論典型的 OSGi Web 應用情境和 Spring-DM 的方法。 但首先,
順便一提,當處理兩個受管理環境時,你會面臨一個有趣的問題:要使用什麼部署模型? 也就是說,哪個將成為引導平台,哪個嵌入? 在我們的例子中,可以將 OSGi 平台部署為 WAR 檔,也可以將 Web 容器(以某種服務的形式)部署在 OSGi 平台內。 更多關於這方面的資訊,將在以後的文章中介紹。
這項可選服務提供了一個簡單的 API 用於註冊Servlet和靜態資源,這些資源被映射到傳入的 HTTP 請求。 為了在 OSGi 內部
serving requests inside OSGi, one must programmatically create theServlet提供請求,必須以程式方式建立Servlet實例,並通過上述 API 註冊它。 此外,Http Service 僅支援Servlet2.1 規範,這可能非常不方便,因為過濾器和監聽器(今天幾乎所有 Web 框架都使用)不可用。 今天可用的大多數(如果不是全部)在 OSGi 中運行 Web 應用程式的解決方案都依賴於 Http Service 的功能。 其中一些使用以下技術之一解決上述問題(據我所知):
使用 Spring-DM,你可以獲得
以上所有這些以及更多都是可能的,因為 Spring-DM 原生 將 bundles 部署到選定的 Web 容器(目前開箱即支援 Apache Tomcat 5.5.x/6.0.x 和 Jetty 6.1.x+)。 這意味著是由 Web 容器實例化和管理 Web 應用程式,因此容器支援的幾乎所有內容都可供 OSGi bundles 使用。
雖然 1.1 尚未正式發布,但我鼓勵你試用 M2。 API 幾乎是穩定的,並且新功能已記錄(隨著我們接近 GA 版本,將會有更多內容) - 如果你需要幫助,請查看 Spring-DM 論壇(是的,我們終於有了一個)和郵件清單。 此外,如果你恰好在 JavaOne,請順道拜訪 SpringSource 攤位,你將從來源獲得答案。