Liberty 中使用 OSGi HTTP Whiteboard

您可以使用 httpWhiteboard-1.0 特性,以便能夠開發和部署利用 Servlet 技術所撰寫的模組 Web 應用程式。

開始之前

如果要使用 httpWhiteboard-1.0 特性,必須已安裝 LibertyhttpWhiteboard-1.0 特性。
  • 安裝含有 OSGi 應用程式程式設計模型功能的 Liberty 最新版本。您可以使用其中一個壓縮安裝套件(ZIP 檔),或解壓縮 Java 保存檔 (JAR) 套件,來安裝 Liberty。如需安裝 Liberty 的相關資訊,請參閱安裝 Liberty
  • 安裝 httpWhiteboard-1.0 特性。如果此特性無法隨所下載的 ZIP 保存檔一起提供,請利用下列指令,從 Liberty Repository 來安裝此特性:
    bin\installUtility install httpWhiteboard-1.0
隨著安裝進行,您會看到下列訊息:
步驟 1/3:正在下載 httpWhiteboard-1.0...
步驟 2/3:正在安裝 httpWhiteboard-1.0...
步驟 3/3:正在清除暫存檔...

順利安裝此特性之後,就可以使用此特性。

程序

下一步

撰寫 Servlet 服務

HTTP Whiteboard 實作會尋找已登錄之特定類型的 OSGi 服務,例如 javax.servlet.Servlet。因此,如果要使用 Http Whiteboard 特性,您可以使用任何支援的 OSGi 元件模型(例如 Blueprint)來登錄服務,這樣就會自動挑選該服務。

下列 Blueprint 範例顯示簡單的 Servlet 實作 com.my.MyWhiteboardServlet,且這項實作登錄在 javax.servlet.Servlet 介面之下的 OSGi 服務登錄中。它也會登錄在標準 Http Whiteboard 服務內容 org.http.whiteboard.servlet.pattern 之下,此內容提供 Servlet 的相對 URL 位置。
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
	<bean id="MyWhiteboardServletBean"
		class="com.my.MyWhiteboardServlet" />
	<service id="MyWhiteboardServletBeanService"
		ref="MyWhiteboardServletBean"
		interface="javax.servlet.Servlet" />
		<service-properties>
			<entry key="osgi.http.whiteboard.servlet.pattern"
				value="/mywhiteboardservlet" />
		</service-properties>
	</service>
</blueprint>
存取 Servlet
當您啟動伺服器,或新增特性至執行中的伺服器時,您可能會看到一些訊息,如下列範例所示:
[AUDIT   ] CWWKE0001I: 伺服器 defaultServer 已啟動。
[AUDIT   ] CWWKZ0058I: 正在監視應用程式的 dropins。
[AUDIT   ] CWWKN2000A: 已新增 HTTP Whiteboard 環境定義根目錄:/osgi/http
[AUDIT   ] CWWKN2000A: 已新增 HTTP Whiteboard 環境定義根目錄:/osgi/http/shared
[AUDIT   ] CWWKT0016I: Web 應用程式可供使用 (default_host):http://localhost:9080/osgi/http/
[AUDIT   ] CWWKN2000A: 已新增 HTTP Whiteboard 環境定義根目錄:/osgi/http/MyHttpWhiteboardApp
[AUDIT   ] CWWKZ0001I: 應用程式 MyHttpWhiteboardApp 已在 0.424 秒內啟動。
在這個範例中,出現三則「已新增 HTTP Whiteboard 環境定義根目錄」訊息。最後一則訊息顯示新增應用程式 MyHttpWhiteboardApp 之環境定義根目錄的位置。應用程式亦包含先前 Blueprint 範例中所定義的 Servlet。您可以將結尾是 /osgi/http/ 的 Web 應用程式 URL 與 Whiteboard 環境定義根目錄的相對 URL 合併在一起(合併彼此交集的 /osgi/http/),然後附加 osgi.http.whiteboard.servlet.pattern 中指定的 Servlet 位置,來存取 Servlet。比方說,合併 Web 應用程式 URL (http://localhost:9080/osgi/http/) 與應用程式的 Whiteboard 環境定義根目錄 (/osgi/http/MyHttpWhiteboardApp),得出:
http://localhost:9080/osgi/http/MyHttpWhiteboardApp
新增 osgi.http.whiteboard.servlet.pattern 值的結果,得出下列 URL:
http://localhost:9080/osgi/http/MyHttpWhiteboardApp/mywhiteboardservlet
與其他功能合併

Http Whiteboard 規格是以 OSGi 服務為基礎。換言之,此特性會整合其他原生 OSGi 服務和元件模型。比方說,Blueprint 可用來動態注入其他服務。Blueprint 名稱空間處理程式和配置管理可用來將配置值動態注入至 Servlet,如此可在必要時,變更應用程式配置。


指示主題類型的圖示 作業主題

檔名:twlp_osgi_httpwhiteboard.html