發布《OSGi實戰》正式版

          在收集了大家對于OSGI Opendoc預覽版的意見后,做出了一些改動,形成了現在的正式版,在此特別感謝一餐三碗、jazzy、caoxg以及brokendoor等朋友對預覽版提出的建議,在預覽版的基礎上,正式版做出了如下的改動和內容的增加:

          增加基于Bridge方式開發B/S應用的章節;

          增加對于Configuration Admin ServiceEvent Admin Service講解的章節;

          增加OSGI關鍵部分講解章節;

          增加面向接口開發章節;

          格式編排;

          正式版的下載地址為:
          http://www.bluedavy.com/opendoc/OSGI_Opendoc.rar

          壓縮包中包含了OSGI Opendoc的PDF、隨文發布的代碼以及可運行包。

          posted on 2006-08-25 12:18 BlueDavy 閱讀(21201) 評論(55)  編輯  收藏 所屬分類: OSGi、SOA、SCA

          評論

          # re: 發布OSGI Opendoc正式版 2006-08-25 15:52 kruce

          strong re!  回復  更多評論   

          # re: 發布OSGI Opendoc正式版 2006-08-26 16:13 zhishui

          不能下載:(  回復  更多評論   

          # re: 發布OSGI Opendoc正式版 2006-08-26 16:37 BlueDavy

          ...不好意思,現在服務器出了點問題......恢復后我會在這里發回復通知,多謝!  回復  更多評論   

          # re: 發布OSGI Opendoc正式版 2006-08-26 17:36 BlueDavy

          已恢復,請下載!  回復  更多評論   

          # re: 發布OSGI Opendoc正式版 2006-09-01 00:13 迷你蝦

          網站連不通,出了什么問題?  回復  更多評論   

          # re: 發布OSGI Opendoc正式版 2006-09-01 14:09 BlueDavy

          由于服務器硬盤出了點問題,等恢復后我會在這發出通知,多謝!  回復  更多評論   

          # re: 發布OSGI Opendoc正式版 2006-09-02 08:12 quaff

          UserValidatorWebBundle
          org.riawork.demo.web.Activator
          ServiceReference ref應該作為一個局部變量,因為org.eclipse.equinox.http停止然後重新開始會造成NPE
          ref指向的還是原來的HttpService,下面得到的http為null
          HttpService http = (HttpService) bc.getService(ref);
          另外監聽HttpService的unregistering事件然後調用unregisterServlet方法沒必要,此時HttpService已經unregistered,取不到他的引用,沒法unregister Servlet,resources,我猜HttpService unregister的時候會自動unregister上面的servlet,resources


          另外有個問題,黨註冊多個Service到一個名字的時候,根據這個名字取得Service的優先級是根據Bundle的名字排序,如何自己定制規則  回復  更多評論   

          # re: 發布OSGI Opendoc正式版 2006-09-02 12:56 BlueDavy

          服務器已恢復,需要下載Opendoc的XDJM們可以下載了。  回復  更多評論   

          # re: 發布OSGI Opendoc正式版 2006-09-02 21:44 BlueDavy

          @quaff
          嗯,關于ref變量的問題指正的有道理,多謝,多說一句,還是在使用DS監控服務的狀態的時候更加容易控制..
          之前的HttpService在unregister本身的時候是沒有unregister上面的servlet和resource的,現在的Equinox的Http Service實現我目前還不確定。
          關于第二個問題,目前好象是沒有什么自己定制規則的方法的,估計只能自己去實現下,按這種來做一個COR Pattern實現是挺爽的...  回復  更多評論   

          # re: 發布OSGI Opendoc正式版 2006-09-08 17:00 螞蚱

          根據opendoc作了個例子,感覺osgi是挺值得關注的一項技術,但我有個問題請教一下,能否在一個bundle中提供多個服務?DS方式如何實現?不然的話,會造成模塊的粒度太小,造成一個應用bundle數目太多,管理起來就比較麻煩了。  回復  更多評論   

          # re: 發布OSGI Opendoc正式版 2006-09-08 18:44 螞蚱

          @螞蚱
          剛才問的問題解決了,具體方法如下:
          1、在OSGI-INFO目錄下再建一個component1.xml配好自己新的組件
          2、在META-INFO/MANIFEST.MF 引用部分改為Service-Component: OSGI-INF/component1.xml,OSGI-INF/component.xml


            回復  更多評論   

          # re: 發布OSGI Opendoc正式版 2006-09-18 15:42 小小涼粉

          在UserValidatorWebBundle中的Activator中

          ref = bc.getServiceReference(HttpService.class.getName());

          這個方法得到的ref還是null啊  回復  更多評論   

          # re: 發布OSGI Opendoc正式版 2006-09-18 18:20 BlueDavy

          @ 小小涼粉
          請確認啟動了Equinox的HttpService實現的Bundle。  回復  更多評論   

          # re: 發布OSGI Opendoc正式版 2006-09-19 18:25 小小涼粉

          多謝多謝

          現在OK了  回復  更多評論   

          # re: 發布OSGI Opendoc正式版 2006-09-30 15:45 gg

          先下了看看,有心得了再了跟各位侃侃  回復  更多評論   

          # re: 發布OSGI Opendoc正式版 2006-11-01 09:51 OSGI

          這個技術很不錯
          我想在一個已有的C/S結構的項目里面加入一個Bundle,在原來的工程中怎么調用這個Bundle的服務呢?  回復  更多評論   

          # re: 發布OSGI Opendoc正式版 2006-11-01 12:16 BlueDavy

          @OSGI
          ...如果是采用OSGi的標準的Bundle的服務的概念的話現在是沒法從外部進行調用的,如果一定要那么做的話只能是webservice之類的方式來處理了..
          也許要等到SCA采用OSGi作為實現規范的那天這個問題才能解決。  回復  更多評論   

          # re: 發布OSGI Opendoc正式版 2006-11-07 12:57 呂品

          我剛剛下載,大概看了一下.我接觸JAVA的時間并不長,給我的感覺就是JAVA的各種框架和技術很多,學起來還真是不容易.關注OSGI是前段時間調研一個SIP終端時候偶然發現的,可以說,我現在還沒入OSGI的門.
          不過看了你的<OSGI實戰>,我有兩個地方不太懂(當然我只是粗略的看了前面的部分),一個是您說JAVA是編譯性質的, 不是解釋性質的,但是我據目前的了解,java應該是解釋性質的吧.還有你說BMW采用OSGI顛覆了很多人對java系統的低效的認識,但是據我了解,OSGI本來就是用來作為設備管理的規范(我概念上可能混亂),所以我覺得應該是說java業界采用OSGI來作為自己實現JAVA系統的規范才對.
          可能我的理解過于膚淺,我將繼續關注您的BLOG,我從這里確實學到了好多知識.  回復  更多評論   

          # re: 發布OSGI Opendoc正式版 2006-11-08 17:31 BlueDavy

          @呂品
          沒錯,OSGi本來就是為了作為嵌入式設備管理的規范而制定的,至于"java業界采用OSGI來作為自己實現JAVA系統的規范"這句話我不太明白你具體的意思...
          對于OSGi,如果僅從它制定的本意去看的話,那么作為企業應用的開發者會先入為主的認為OSGi沒什么作用的,OSGi為Java系統規范的模塊化和動態化的實現提供了指導,自然的就可以成為Java系統此方面的規范的參考,甚至直接成為規范,就像JSR 291.  回復  更多評論   

          # re: 發布OSGI Opendoc正式版 2006-11-08 18:54 呂品

          我想模塊開發的規范化粒度應該要大于bean之類的東西,但模塊的復用和系統最初的"模塊分解"方式應該有關系,兩個設計師的模塊分解方式同樣可能完全不同,而且面對的需求也是難以確定的,也就是說一個項目開發的模塊要部署到另一個項目上完全可能,但是他在另一個項目的作用可能就很局限.  回復  更多評論   

          # re: 發布OSGI Opendoc正式版 2006-11-08 19:02 呂品

          re:2006-11-08 17:31 BlueDavy
          我表達的確實不清楚,
          對于"java業界采用OSGI來作為自己實現JAVA系統的規范"這句話
          我只是想說,BMW用了它們自己業界的東西(它只是采用OSGI作為其底層架構,它并不是采用了一個java的系統),它這點上的成功不應該對人們改變java的認識產生影響,而是為JAVA系統的開發者提供了一個好的實現方案.  回復  更多評論   

          # re: 發布OSGI Opendoc正式版 2006-11-23 11:51 huang[匿名]

          在實踐《實戰》的時候,發現一個問題,請教一下blueDavy:

          就是我利用
          osgi>services
          發現了了服務:
          {org.springframework.context.ApplicationContext}={org-springframework-context-service-name=org.springframework.osgi.samples.simpleservice-springApplicationContext, service.id=53}
          Registered by bundle: initial@reference:file:E:/Workspace/spring-osgi/spring-osgi/samples/simple-service/simple-service-bundle/ [2362]


          可是我利用如下語句來獲取的時候,卻返回null:

          String filter = "(org.springframework.context.service.name=org.springframework.osgi.samples.simpleservice-springApplicationContext)";
          ServiceReference[] rs = context.getAllServiceReferences(ApplicationContext.class.getName(), filter);

          結果rs為null,不知道為什么。  回復  更多評論   

          # re: 發布OSGI Opendoc正式版 2006-11-23 14:51 壞男孩

          同志們
          辛苦

          !  回復  更多評論   

          # re: 發布OSGI Opendoc正式版 2006-11-23 15:37 BlueDavy

          @huang[匿名]
          不知道這是不是你的鍵誤:
          filter應該是:
          String filter="(org-springframework-context-service-name=org.springframework.osgi.samples.simpleservice-springApplicationContext)";  回復  更多評論   

          # re: 發布OSGI Opendoc正式版 2006-11-24 22:57 hiwzg

          下載了最新的org.eclipse.equinox.servlet.api_1.0.0.v20060717.jar,org.eclipse.equinox.http_1.0.100.v20060821.jar。
          放到Eclipse的plugins目錄下。啟動Eclipse,Run,New之后,并不會看到那些Plugin的選項啊。

          只有兩種:workspaces-plugins以及Target Platform。這是什么問題呢?

          我用的Eclipse3.2。

          這是什么問題?

            回復  更多評論   

          # re: 發布OSGI Opendoc正式版 2006-11-24 23:16 hiwzg

          將Eclipse換成全新的3.2.1版本就OK了,奇怪的問題  回復  更多評論   

          # re: 發布OSGI Opendoc正式版 2006-11-26 17:51 huang[匿名]

          @BlueDavy
          真是慚愧啊,呵呵,我當時沒看清楚。多謝BlueDavy的金星火眼啊,:)  回復  更多評論   

          # re: 發布OSGI Opendoc正式版 2007-03-04 07:46 zj

          不錯,正在學習,多謝!  回復  更多評論   

          # re: 發布OSGI Opendoc正式版 2007-03-19 10:38 atomy

          有誰知道bluedavy的電子郵件哦  回復  更多評論   

          # re: 發布OSGI Opendoc正式版 2007-03-19 21:10 BlueDavy

          :),可以在這里直接說...  回復  更多評論   

          # re: 發布OSGI Opendoc正式版 2007-03-22 11:07 kane

          我希望trace我的rcp程序bundle activate的順序,為此建了一個bundle叫osgi.monitor, 現在希望這個bundle能夠先于rcp bundle被active。

          在vm arguments里面加了-Dosgi.bundles=osgi.moniotr@start
          但是這樣導致rcp所需的bundles根本不被active了,整個app也不能啟動。

          想問問,怎樣才能控制我的bundle active次序,而又不影響rcp app的運行。

          謝謝  回復  更多評論   

          # re: 發布OSGI Opendoc正式版 2007-03-22 11:38 dauberfly

          Thx.But, what is OSGi Opendoc?  回復  更多評論   

          # re: 發布OSGI Opendoc正式版 2007-03-22 22:18 BlueDavy

          @kane
          請仔細查看Opendoc里關于StartLevel Service部分的描述,可以通過那樣的方法來設置Bundle的啟動順序。
            回復  更多評論   

          # re: 發布OSGI Opendoc正式版 2007-03-28 12:01 kane

          BlueDavy,
          Thanks very much.
          問題已經解決了,這幾日一直沒上網,耽誤來致謝了:)  回復  更多評論   

          # re: 發布OSGI Opendoc正式版 2007-04-25 14:23 yixilee

          請教一個問題,我照著實戰的步驟將LDAPValidatorBundle、DBValidatorBundle、ConfigFileValidatorBundle、UserValidatorBundle得Bundle工程建立以后,在Dependencies->Imported Packages下面通過Add按鈕已經講orgv.riawork.demo.service.user添加進去??墒菫槭裁丛谏厦鎺讉€Bundle工程中的以下語句都會報錯呢?
          import org.riawork.demo.service.user.Validator
          對應的意思就是Validator類沒有定義的吧。怎么解決這個問題呢?  回復  更多評論   

          # re: 發布OSGI Opendoc正式版 2007-04-25 14:26 yixilee

          不好意思,打字太快了,這句話“下面通過Add按鈕已經講orgv.riawork.demo.service.user添加進去”應該改為“下面通過Add按鈕已經將org.riawork.demo.service.user添加進去”。
          請指教。  回復  更多評論   

          # re: 發布OSGI Opendoc正式版 2007-04-29 16:59 yixilee

          已經將問題解決了,原因是依賴的問題,要先建立UserValidatorBundle,然后才建立其他的bundle。
          另外一種方式是如果順序不確定,得在其他的bundle中重新import package,即重新把org.riawork.demo.service.user添加進去。

          另外,遇到了另外的一個問題,登錄的時候,得依賴login.htm文件,而該文件是放在src目錄下的,而實際調用的是bin目錄下面的,按理說應該在編譯的時候自動拷貝到bin目錄下的,可是每次我都要人工講該文件拷貝到bin下面才可以順利通過web方式執行。不知道為什么?  回復  更多評論   

          # re: 發布OSGI Opendoc正式版 2007-06-07 20:59 bearhunter

          好東西學習  回復  更多評論   

          # re: 發布OSGI Opendoc正式版 2007-08-28 14:37 姜利陽

          看來搞OSGI的人蠻多  回復  更多評論   

          # re: 發布《OSGi實戰》正式版 2007-11-27 10:12 BournCayon

          第81頁 共 90頁中“
          Bundle A需要使用實現了 org.riawork.demo.Opendoc 接口的類,在 OSGI 中一
          種典型的做法就是: 將 org.riawork.demo.Opendoc 做為一個單獨的 Bundle ,并 Export 中
          org.riawork.demo 包,Bundle A 引用 org.riawork.demo 包,采用如下的方式調
          用實現了接口的實例:OpenDoc service = (OpenDoc)context.getService(context.getServiceRefenerce(OpenDoc.class.getName()))”

          按照這個方法,我也類似的寫了一個(因為類似所以就不貼出來了),可是在context.getServiceRefenerce(OpenDoc.class.getName())返回的是null。為什么會這樣?  回復  更多評論   

          # re: 發布《OSGi實戰》正式版 2007-12-06 21:56 Jenny Liang

          我按照 你建議的DS 方式重構了 登入模塊, 為什么運行時出現Not Found 404?
          查不到原因:(  回復  更多評論   

          # re: 發布《OSGi實戰》正式版 2007-12-07 10:08 BlueDavy

          @Jenny Liang
          請在console中輸入log,看看有沒有什么錯誤信息提示!  回復  更多評論   

          # re: 發布《OSGi實戰》正式版 2008-03-05 16:42 banian

          ‘目前國外對這方面其實也屬于摸索階段,如果現在我們就能夠對OSGI這樣優秀的插件體系結構進行足夠的熟悉和關注,那么也許我們能夠有機會第一次提出更為領先的設計思想,而不是一直在思想級別遠落后于國外,被國外牽著鼻子走’

          不錯!
          由于工作的需要,正考慮其C#實現  回復  更多評論   

          # re: 發布《OSGi實戰》正式版 2008-05-30 14:58 jeasonzhao

          很強大的框架,以前短視了啊  回復  更多評論   

          # re: 發布《OSGi實戰》正式版 2008-07-15 14:40 ss

          首先非常感謝你的貢獻!我看你了的文章以后照著你說的做了一個demo
          但在ref = bc.getServiceReference(HttpService.class.getName());這的時候 ref總是為null 不知道為什么,希望能指點一下  回復  更多評論   

          # re: 發布《OSGi實戰》正式版[未登錄] 2008-07-22 16:38 seventh

          向BlueDavy大大請教一個問題:
          關于你的OSGI開源文檔,讓我受益巨大,不過有點疑惑的是你舉的動態驗證的那個例子來對比使用OSGI和不使用OSGI的優劣.
          不知是我太菜還是怎么回事,我用傳統方式來實現發現根本不需要重寫CLASSLOADER監測目錄中類的變化,很簡單,就像你說的那樣,直接一個Validator接口,其他根據不同類型驗證方式用不同實現哪,一個文本文件里面就是當前需要的某種驗證類型的類完全限定名,寫一個驗證類直接讀該文件反射實例化對象.不管是要切換驗證類型或者是寫了新驗證類型實現類,都不用重啟啊...
          如果是切換已有驗證類型,直接改配置文件,如果是有新的,直接將編譯好的類放進類路徑,改配置文件,立即生效...對于這個問題一直不解,請賜教!!!望解答,十分感謝!  回復  更多評論   

          # re: 發布《OSGi實戰》正式版 2008-09-30 15:59 免費小說

          正在看,正在學習  回復  更多評論   

          # re: 發布《OSGi實戰》正式版 2008-11-03 11:24 cui

          請教一下:在您的大作《OSGI實戰》中提到:“目前DS的實現還處于測試階段,equinox team認為使用DS可能會產生效率問題,同時不適合在多線程情”,我想問一下:DS目前已經正式發布,那么是否還存在上述的效率問題?多線程問題?對于上述的問題是否有什么解決建議?
          謝謝。  回復  更多評論   

          # re: 發布《OSGi實戰》正式版 2009-03-19 17:51 Yvon

          最近在項目中接觸到了OSGi,以前也是在尋找不同的模塊之間可以用一種熱插拔的方式來實現開發和部署的方式,現在才發現OSGi原來早就可以讓我這樣做了,剛剛接觸,就從最基礎的開始吧。  回復  更多評論   

          # re: 發布《OSGi實戰》正式版 2009-06-16 10:39 miazure

          請問你的OSGi實戰篇 提供的demo樣例的 用戶名和密碼是什么呢?  回復  更多評論   

          # re: 發布《OSGi實戰》正式版[未登錄] 2010-05-18 10:48 孤酷伶仃

          又下不了了!  回復  更多評論   

          # re: 發布《OSGi實戰》正式版 2011-06-06 15:45 wyt

          請問,我創建了一個servlet,利用plug-in.xml進行映射后,在映射的package中使用了一個有4個服務實現的接口,在servlet中用到了getServiceReference()。除了servlet包,沒有其他的active包進行處理,返回了NULL。這應該怎么解決?  回復  更多評論   

          # re: 發布《OSGi實戰》正式版 2012-02-20 14:32 tms

          非常感謝分享。  回復  更多評論   

          # re: 發布《OSGi實戰》正式版[未登錄] 2012-05-17 10:16 xiaoqiang

          有下載不了了啊  回復  更多評論   

          # re: 發布《OSGi實戰》正式版[未登錄] 2012-05-17 10:25 xiaoqiang

          誰有代碼方便的話發我郵箱:152070765@qq.com  回復  更多評論   

          # re: 發布《OSGi實戰》正式版 2015-01-01 12:06 legend11999

          我也下載不了啊~~有好心人能發我一份不  回復  更多評論   

          公告

           









          feedsky
          抓蝦
          google reader
          鮮果

          導航

          <2006年9月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          1234567

          統計

          隨筆分類

          隨筆檔案

          文章檔案

          Blogger's

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 长子县| 慈利县| 云梦县| 马山县| 阳城县| 滕州市| 彭山县| 博湖县| 平凉市| 托克逊县| 霍林郭勒市| 沐川县| 双牌县| 分宜县| 馆陶县| 镇坪县| 惠州市| 新民市| 澄城县| 孟津县| 靖边县| 海丰县| 津南区| 封开县| 城市| 浦北县| 报价| 鱼台县| 天全县| 新绛县| 睢宁县| 团风县| 嘉黎县| 柯坪县| 徐水县| 丰台区| 屏山县| 浦北县| 钟山县| 咸丰县| 信丰县|