領先一步
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 中Servlet提供服務請求,必須**以程式設計方式**建立Servlet例項並透過上述 API 進行註冊。此外,Http 服務僅支援Servlet2.1 規範,這可能非常不方便,因為過濾器和監聽器(當今幾乎所有 Web 框架都使用)不可用。大多數(如果不是全部)我所知的、用於在 OSGi 中執行 Web 應用程式的解決方案,都依賴於 Http 服務來實現其功能。據我所知,其中一些解決方案透過以下一種技術來解決上述問題:
使用 Spring-DM,您可以獲得
以上所有以及更多功能之所以成為可能,是因為 Spring-DM 將 bundle **原生**部署到選定的 Web 容器(目前支援 Apache Tomcat 5.5.x/6.0.x 和 Jetty 6.1.x+)。這意味著 Web 容器負責例項化和管理 Web 應用程式,因此容器支援的幾乎所有內容都可供 OSGi bundle 使用。
雖然 1.1 尚未最終確定,但我鼓勵您嘗試一下 M2。API 基本上已經穩定,新功能也已記錄在案(隨著我們接近 GA 版本,將有更多內容),如果您需要幫助,請檢視 Spring-DM 論壇(是的,我們終於有了!)和郵件列表。此外,如果您恰巧參加了 JavaOne,請光臨 SpringSource 展位,您將從源頭獲得答案。