利用 Java EE 7 技術啟用 OSGi 應用程式
您可以利用主要的 Java™ Platform Enterprise Edition (Java EE) 7 技術來啟用 OSGi 應用程式。 WebSphere® Application Server Liberty 8.5.5.6 版及更新的版本是通過認證,適用於 Java EE 7 Full Platform 的正式作業備妥伺服器。
為了實現零移轉,會建立新特性,並將現有的特性維持不變。例如,當新增對於 servlet 3.1 的支援時,會建立一個 servlet 3.1 特性,且會保留 servlet 3.0,以確保現有伺服器部署的行為不會改變。
在 Java EE 7 支援之前的環境中,您需要配置 blueprint-1.0 或某些相依於它的東西,才能部署 OSGi 應用程式。 之後,您再配置其他 OSGi 特定特性(例如 wab-1.0),或一般特性(例如 jpa-2.0),來取得其他功能。
在 Java EE 7 環境中,OSGI 配置有兩個步驟:
- 決定您要部署 OSGi 軟體組。
- 決定您要利用哪些技術來實作這些 OSGi 軟體組。
告訴伺服器您想要部署 OSGi 軟體組
第一步驟是新增 osgiBundle-1.0 特性至您的 server.xml 中:
<featureManager>
<feature>osgiBundle-1.0</feature>
</featureManager>
新增 osgiBundle-1.0 特性會使「OSGi 軟體組」能夠作為 OSGi 應用程式的一部分來進行部署。告訴伺服器您想使用哪些元件模型
現在,您無需具備 OSGi 特定特性(例如 wab-1.0),而是配置與 Java EE 相同的元件模型。
這個配置可讓您在軟體組(例如,「Web 應用程式軟體組」或 Http Whiteboard 服務)中使用 Servlet:
<featureManager>
<feature>osgiBundle-1.0</feature>
<feature>servlet-3.1</feature>
</featureManager>
如需相關資訊,請參閱 OSGi Web 應用程式軟體組 和 OSGi Http Whiteboard。這個伺服器配置新增了在「持續性軟體組」中使用 jpa-2.1 的能力:
<featureManager>
<feature>osgiBundle-1.0</feature>
<feature>servlet-3.1</feature>
<feature>jpa-2.1</feature>
</featureManager>
如需相關資訊,請參閱利用 Java 持續性 API 存取資料。您仍可以選擇性地併入 blueprint-1.0:
<featureManager>
<feature>osgiBundle-1.0</feature>
<feature>servlet-3.1</feature>
<feature>jpa-2.1</feature>
<feature>blueprint-1.0</feature>
</featureManager>