取得領先
VMware 提供培訓和認證,以加速您的進步。
瞭解更多正如 Rob 在他的 OSGi Web 容器簡介 中提到的那樣,dm Server 會自動將系統包匯入到 Web 捆綁包中。 事實證明這非常有用,尤其是在將現有 WAR 檔案部署到 OSGi 環境中時。 我最近花了一些時間將此功能從 dm Server 的 Web 子系統移動到 OSGi Web 容器 RI 中。 本部落格描述了新功能以及如何使用它。
您可以透過兩種方式指示 RI 匯入所有匯出的系統包。
安裝 Web 捆綁包時,您現在可以使用 SpringSource-SystemPackages URL 引數來自動匯入所有系統捆綁包的匯出。 例如
install webbundle:file:mywar.war?SpringSource-SystemPackages=import
或者,如果您不想每次安裝 WAR 檔案時都記住指定該引數,則可以透過將 SpringSource-SystemPackages 標頭新增到 WAR 的 manifest 來啟用此功能
SpringSource-SystemPackages: import
RI 將為系統捆綁包匯出的每個包生成一個匯入,除非 WAR 檔案已經匯入了該包,或者該包包含在 WEB-INF/classes 中或 WEB-INF/lib 中的 Jar 中。 如果 WAR 檔案已經匯入或包含該包,則系統捆綁包的匯出將被忽略,並且任何現有的匯入都將保持不變。 如果生成了新的匯入,它將使用一個版本範圍來精確包含從系統捆綁包匯出的版本。
首先,按照 Rob 之前 描述 的方式構建並啟動 RI,但如果您使用了 RI 的先前版本,則應使用 clean 選項啟動 PAX runner,以確保它使用新構建的 RI 捆綁包,而不是其快取中的捆綁包
pax-run --clean --platform=equinox --snapshot runner.bundles
以前,要成功使用 formtags WAR,需要使用 Import-Package URL 引數匯入一些包
install webbundle:file:formtags.war?Import-Package=org.xml.sax,org.xml.sax.helpers,javax.xml.parsers,org.w3c.dom
這有點麻煩,因為您需要知道要匯入哪些包。 相反,您現在可以使用 SpringSource-SystemPackages URL 引數
osgi> install webbundle:file:formtags.war?SpringSource-SystemPackages=import
Bundle id is 43
無需列出安裝 formtags Web 捆綁包時要匯入的特定包,它現在應該可以成功啟動
osgi> start 43
我們一直在研究真正的模組化 OSGi Web 應用程式的原型,並且我們越來越接近向您展示一些東西。 它將以 dm Server 的一個新元件的形式出現,執行在 OSGi Web 容器之上,該容器現在嵌入在 dm Server 中,以取代其以前的 Web 支援。 一切順利的話,應該在本週末之前準備好。 敬請關注!