取得領先
VMware 提供培訓和認證來加速您的進步。
瞭解更多自從 Spring Dynamic Modules 的第一個里程碑版本以來,就不斷有關於在 OSGi 中執行 Web 應用程式的請求。 這可能是最受請求的功能之一,毫不奇怪,一旦 1.0 最終版釋出,Web 支援就成為 1.1 分支的主要關注點。 我很高興地報告,隨著剛剛釋出的 M2,正如 Juergen 已經暗示的那樣,Spring-DM 不僅支援 vanilla war 檔案(自 1.1.0 M1 起可用),還支援在 OSGi 中執行的 Spring-MVC 應用程式。 在這篇文章中,我想簡要討論典型的 OSGi Web 場景和 Spring-DM 的方法。 但首先,
順便說一句,當處理兩個託管環境時,人們面臨一個有趣的問題:使用什麼部署模型? 也就是說,哪個是引導平臺,哪個是嵌入的? 在我們的例子中,可以部署 OSGi 平臺作為一個 WAR 檔案,或者在 OSGi 平臺內部部署 Web 容器(以某種服務形式)。 不過,更多關於這方面的內容將在以後的文章中介紹。
這個可選服務提供了一個簡單的 API 用於註冊Servlet和對映到傳入 HTTP 請求的靜態資源。 為了有一個Servlet在 OSGi 內部提供服務的例項,必須以程式設計方式建立Servlet例項並透過上述 API 註冊它。 此外,Http 服務僅支援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 展位,您將從源頭獲得答案。