發(fā)布《OSGi實戰(zhàn)》正式版

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

          增加基于Bridge方式開發(fā)B/S應(yīng)用的章節(jié);

          增加對于Configuration Admin ServiceEvent Admin Service講解的章節(jié);

          增加OSGI關(guān)鍵部分講解章節(jié);

          增加面向接口開發(fā)章節(jié);

          格式編排;

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

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

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

          評論

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

          strong re!  回復(fù)  更多評論   

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

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

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

          ...不好意思,現(xiàn)在服務(wù)器出了點問題......恢復(fù)后我會在這里發(fā)回復(fù)通知,多謝!  回復(fù)  更多評論   

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

          已恢復(fù),請下載!  回復(fù)  更多評論   

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

          網(wǎng)站連不通,出了什么問題?  回復(fù)  更多評論   

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

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

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

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


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

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

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

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

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

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

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

          # re: 發(fā)布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


            回復(fù)  更多評論   

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

          在UserValidatorWebBundle中的Activator中

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

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

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

          @ 小小涼粉
          請確認(rèn)啟動了Equinox的HttpService實現(xiàn)的Bundle。  回復(fù)  更多評論   

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

          多謝多謝

          現(xiàn)在OK了  回復(fù)  更多評論   

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

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

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

          這個技術(shù)很不錯
          我想在一個已有的C/S結(jié)構(gòu)的項目里面加入一個Bundle,在原來的工程中怎么調(diào)用這個Bundle的服務(wù)呢?  回復(fù)  更多評論   

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

          @OSGI
          ...如果是采用OSGi的標(biāo)準(zhǔn)的Bundle的服務(wù)的概念的話現(xiàn)在是沒法從外部進(jìn)行調(diào)用的,如果一定要那么做的話只能是webservice之類的方式來處理了..
          也許要等到SCA采用OSGi作為實現(xiàn)規(guī)范的那天這個問題才能解決。  回復(fù)  更多評論   

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

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

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

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

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

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

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

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

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

          在實踐《實戰(zhàn)》的時候,發(fā)現(xiàn)一個問題,請教一下blueDavy:

          就是我利用
          osgi>services
          發(fā)現(xiàn)了了服務(wù):
          {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);

          結(jié)果rs為null,不知道為什么。  回復(fù)  更多評論   

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

          同志們
          辛苦

          !  回復(fù)  更多評論   

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

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

          # re: 發(fā)布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。

          這是什么問題?

            回復(fù)  更多評論   

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

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

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

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

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

          不錯,正在學(xué)習(xí),多謝!  回復(fù)  更多評論   

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

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

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

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

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

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

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

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

          謝謝  回復(fù)  更多評論   

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

          Thx.But, what is OSGi Opendoc?  回復(fù)  更多評論   

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

          @kane
          請仔細(xì)查看Opendoc里關(guān)于StartLevel Service部分的描述,可以通過那樣的方法來設(shè)置Bundle的啟動順序。
            回復(fù)  更多評論   

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

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

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

          請教一個問題,我照著實戰(zhàn)的步驟將LDAPValidatorBundle、DBValidatorBundle、ConfigFileValidatorBundle、UserValidatorBundle得Bundle工程建立以后,在Dependencies->Imported Packages下面通過Add按鈕已經(jīng)講orgv.riawork.demo.service.user添加進(jìn)去。可是為什么在上面幾個Bundle工程中的以下語句都會報錯呢?
          import org.riawork.demo.service.user.Validator
          對應(yīng)的意思就是Validator類沒有定義的吧。怎么解決這個問題呢?  回復(fù)  更多評論   

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

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

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

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

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

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

          好東西學(xué)習(xí)  回復(fù)  更多評論   

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

          看來搞OSGI的人蠻多  回復(fù)  更多評論   

          # re: 發(fā)布《OSGi實戰(zhàn)》正式版 2007-11-27 10:12 BournCayon

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

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

          # re: 發(fā)布《OSGi實戰(zhàn)》正式版 2007-12-06 21:56 Jenny Liang

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

          # re: 發(fā)布《OSGi實戰(zhàn)》正式版 2007-12-07 10:08 BlueDavy

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

          # re: 發(fā)布《OSGi實戰(zhàn)》正式版 2008-03-05 16:42 banian

          ‘目前國外對這方面其實也屬于摸索階段,如果現(xiàn)在我們就能夠?qū)SGI這樣優(yōu)秀的插件體系結(jié)構(gòu)進(jìn)行足夠的熟悉和關(guān)注,那么也許我們能夠有機(jī)會第一次提出更為領(lǐng)先的設(shè)計思想,而不是一直在思想級別遠(yuǎn)落后于國外,被國外牽著鼻子走’

          不錯!
          由于工作的需要,正考慮其C#實現(xiàn)  回復(fù)  更多評論   

          # re: 發(fā)布《OSGi實戰(zhàn)》正式版 2008-05-30 14:58 jeasonzhao

          很強(qiáng)大的框架,以前短視了啊  回復(fù)  更多評論   

          # re: 發(fā)布《OSGi實戰(zhàn)》正式版 2008-07-15 14:40 ss

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

          # re: 發(fā)布《OSGi實戰(zhàn)》正式版[未登錄] 2008-07-22 16:38 seventh

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

          # re: 發(fā)布《OSGi實戰(zhàn)》正式版 2008-09-30 15:59 免費小說

          正在看,正在學(xué)習(xí)  回復(fù)  更多評論   

          # re: 發(fā)布《OSGi實戰(zhàn)》正式版 2008-11-03 11:24 cui

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

          # re: 發(fā)布《OSGi實戰(zhàn)》正式版 2009-03-19 17:51 Yvon

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

          # re: 發(fā)布《OSGi實戰(zhàn)》正式版 2009-06-16 10:39 miazure

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

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

          又下不了了!  回復(fù)  更多評論   

          # re: 發(fā)布《OSGi實戰(zhàn)》正式版 2011-06-06 15:45 wyt

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

          # re: 發(fā)布《OSGi實戰(zhàn)》正式版 2012-02-20 14:32 tms

          非常感謝分享。  回復(fù)  更多評論   

          # re: 發(fā)布《OSGi實戰(zhàn)》正式版[未登錄] 2012-05-17 10:16 xiaoqiang

          有下載不了了啊  回復(fù)  更多評論   

          # re: 發(fā)布《OSGi實戰(zhàn)》正式版[未登錄] 2012-05-17 10:25 xiaoqiang

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

          # re: 發(fā)布《OSGi實戰(zhàn)》正式版 2015-01-01 12:06 legend11999

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

          公告

           









          feedsky
          抓蝦
          google reader
          鮮果

          導(dǎo)航

          <2006年11月>
          2930311234
          567891011
          12131415161718
          19202122232425
          262728293012
          3456789

          統(tǒng)計

          隨筆分類

          隨筆檔案

          文章檔案

          Blogger's

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 满洲里市| 宜黄县| 凭祥市| 伊春市| 文成县| 驻马店市| 龙南县| 科技| 谷城县| 石泉县| 襄汾县| 光山县| 石河子市| 三穗县| 黔西县| 华阴市| 府谷县| 民乐县| 昌吉市| 新宾| 宁强县| 贵州省| 肇源县| 司法| 夏河县| 扶绥县| 化德县| 彝良县| 五指山市| 上高县| 峡江县| 苗栗市| 南木林县| 高密市| 漠河县| 格尔木市| 磐石市| 永昌县| 阜阳市| 江西省| 万山特区|