天天看點

OSGI 入門

   現在公司使用的是架構師自己編寫的架構,很多東西都是來自的一些開源的思想。其中用到一種OSGI的架構。OSGI早就聽說過了,但是自己沒有實際的驗證過。正好這段時間也有時間,自己想搞點有技術含量的東西。在大禹的提示下,找到了bluedavy網站。(http://www.blogjava.net/BlueDavy/)下載下傳了一份《OSGI_Opendoc.rar》文檔開始學習。

    我實際也是遇到了很多問題,到目前為止還是不清楚,OSGI是一種具體的什麼架構,使用起來到底有多大的優勢。? 這些問題,等我看完這篇文檔,再給大家進行分享吧。我現在隻是想記錄下遇到的一些問題,希望能給後來的學習者有點提示吧。

     1.OSGI環境問題,按照bluedavy大叔的提示,一步步實作代碼到第六小節,開始釋出自己的service。

        按照文檔說明,運作現在的服務。發現 UserValidatorWebBundle 是resolve狀态,加載沒有成功。

       開始檢測自己的環境,自己使用的 eclipse 是3.3.2版本,裡邊裡邊缺少沒有對應的org.eclipse.equinox.servlet.api_1.0.0.v20060601.jar 包,到網上到處尋找,得到的答案是 在eclipse 3.1之後 ,這個包的名字已經變成 javax.servlet_2.4.0.v200706111738.jar。但是改成引入這個包之後,在運作的時候,系統一直找不到對應的servletHttp的class。 發現自己javax.servlet包的版本太低,然後在網上找到 javax.servlet_2.4.0.v200806031604.jar的版本,放入到piugins中,又出現了 找不到依賴的javax.servlet_2.4.0.v200706111738.jar包。郁悶。為這個問題折騰到晚上12點左右,沒有辦法第二天再來處理吧。

   在路上我思考的結果是,eclipse 3.2版本在其他包在使用到了 javax.servlet_2.4.0.v200706111738.jar但是osgi有使用到了  javax.servlet_2.4.0.v200806031604.jar包中的類。這樣換肯定會找不到對應的jar包。最後的答案還是換eclipse的開發環境吧。網上有人使用的eclipse 3.4版本的,能正常的運作,那就試試吧。

   結果我從網上配置設定下載下傳了  eclipse 3.4.1 、 3.4.2、3.5版本。 3.4.2、3.5版本的連建立plugin project的工程都找不到,3.4.1版本能建立項目但是導入系統的時候引入包都是有問題的,使用起來很不友善啊。哎。。看來這個問題不能這麼解決。 感覺離答案越來越遠。還是回到我親愛的3.2版本吧。

    在運作執行個體代碼的時候,我發現裡邊有文檔中提到的兩個jar包,org.eclipse.equinox.servlet.api_1.0.0.v20060601.jar 包。那我導入eclipse中不就可以了嗎? 導入嘗試果然問題解決了,頁面能正常通路了。哈哈。。

繼續閱讀