天天看點

OSGI開發web應用開發web的兩種方式 Http伺服器嵌入到OSGI架構環境配置 OSGI開發web應用

基于OSGI開發B/S應用有兩種方式:

1)在OSGI架構中嵌入Http伺服器

2)在Servlet容器中嵌入OSGI架構

配置運作環境,選擇Run->Run Configuration,new一個環境

保留以下幾個Bundle,包括javax.servlet、org.apache.commons.logging、org.eclipse.equinox.http.jetty、org.eclipse.equinox.http.servlet、org.eclipse.osgi、org.eclipse.osgi.services、org.mortbay.jetty

其它的都不選擇

如果出現異常,比如

說明端口被占用,在Run Configuration中設定參數

重新運作,如果沒有出現異常,則表示運作成功。

在osgi視窗輸入ss,會看到如下結果

打開浏覽器輸入http://localhost:8080,得到結果如下:

在Eclipse中OSGi程式的開發是以插件工程的方式進行開發的。首先建立插件工程HelloWebOSGI

完成後選擇下一步

在模闆中選擇Hello OSGI Bundle

選擇下一步

“Basic OSGi Bundle”對話框,是模闆需要輸入的Bundle啟動和停止時列印的消息内容,在此保留預設,點“Finish”。

在左側的包浏覽面闆中可以看到OSGi工程的結構,“Plug-in Dependencies”下是OSGi插件運作需要的元件,src目錄下是自動生成的源代碼,simplewebosgi.Activator是 Bundle生成周期管理類,可以監聽元件的啟動和停止動作。與普通Java工程所不同的是向導會生成“META-INF”目錄以及其下的檔案 MANIFEST.MF檔案,此檔案會随插件的釋出一起被打到jar包中,定義了Bundle的辨別、版本、名稱、運作環境等内容。右邊是可視化的配置管 理器,在這裡可以定義插件,配置插件運作所依賴的元件及需要導入的包,運作時環境,編譯建構配置等。

然後在src下建立目錄page,在page目錄下建立hello.html,加入内容

 在工程中引入javax.servlet、javax.servlet.http、org.osgi.service.http這幾個包,如下圖所示

修改生成的Activator類,注冊加入HttpService服務,程式如下:

 運作并加入HelloWebOSGI工程

啟動後顯示Hello World!,這是在工程啟動的時候輸出的内容,然後輸入ss,可以看到所有的Bundle都已經被加載進來

可以得到如下頁面,表示運作成功。

繼續閱讀