天天看點

Equinox OSGi伺服器應用程式的配置步驟

本文介紹在Eclipse裡如何配置一個簡單的基于Eclipse Equinox OSGi實作的Web應用程式,在它的基礎上可以構造更加複雜的應用,本文使用的是Eclipse 3.3.1版本,如果你的Eclipse版本在3.2.0或以上應該都可以。

一、支援靜态頁面和Servlet

1. 建立一個新的plugin項目, net.bjzhanghao.osgi.test,在向導第一步裡選中“This plug-in is target,在下一步的“Plug-in Options”裡選中“Generate an activator”。

2. 在例子項目的MANIFEST.MF裡添加如下依賴項目,這些項目都是Eclipse自帶的:

3. 在例子項目根目錄下建立一個放置web檔案的目錄,如“web_files”,在這個目錄下寫一個簡單的index.html檔案。

4. 為項目建一個plugin.xml檔案,内容如下:

注意,這時若MANIFEST.MF裡提示錯誤,隻要在Bundle-SymbolicName這一行後面加上“;singleton:=true”即可解決。

5. 現在可以啟動這個應用程式了。在Eclipse菜單裡選擇“Run->Open Run Dialog...”,在左邊的 “OSGi Framework”項下建立一個新的啟動配置項,在右邊先點“Deselect All”清空所有複選框,然後在Workspace下選中 自己的osgi項目,再點“Add Required Bundles”按鈕,Eclipse會自動把所依賴的項目選中。 最後按“Debug”按鈕啟動,内嵌的jetty和我們的項目會一起被啟動。

6. 打開浏覽器,輸入“http://localhost/web/index.html”應該可以看到index.html裡的内容。

以上隻驗證了靜态頁面,現在來配置一個servlet看看。

7. 在項目裡建立一個繼承自HttpServlet的類,覆寫doGet()方法,内容是在網頁上列印一些文本。

8. 在項目的plugin.xml裡添加下面的内容,這些内容指定了servlet的通路路徑和實作類:

9. 重新啟動項目,在浏覽器裡輸入“http://localhost/exampleServlet”,應該可以看到servlet的輸出。

二、支援JSP頁面

10. 在index.html所在目錄下建立一個簡單的jsp檔案index.jsp

11. 打開項目的MANIFEST.MF檔案,添加如下項目依賴:

其中org.eclipse.equinox.http.helper需要從cvs裡下載下傳得到(目前是在/cvsroot/eclipse下的 equinox-incubator目錄裡,以後可能會直接放到/cvsroot/eclipse下)。

12. 修改Activator,目的是注冊一個處理擴充名為.jsp類型的servlet,感覺這一步以後應該有更簡單的方法,例如通過擴充點。

13. 打開Debug對話框,選中workspace裡的例子osgi項目和org.eclipse.equinox.http.helper項目,再按“Add Required Bundles”按鈕,然後啟動程式。

14. 在浏覽器裡輸入“http://localhost/jsps/index.jsp”,應該可以看到jsp輸出。

參考連結:

<a href="http://www.eclipse.org/equinox/server/http_writing_application.php">Writing a bundle-based server application</a>

<a href="http://www.eclipse.org/equinox/server/jsp_support.php">OSGi based JSP Support</a>

繼續閱讀