日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
SpringOSGi的整合

OSGi的強(qiáng)大還在于它的聲明式服務(wù)(DS-DeclarativeServices),乍一看,和Spring的依賴(lài)注入(DI- DependencyInjection)很相像,于是不免會(huì)想到OSGi是否會(huì)對(duì)Spring產(chǎn)生巨大的沖擊呢?其實(shí)這種擔(dān)心完全沒(méi)有必要,相反二者的結(jié)合反而會(huì)讓OSGi如虎添翼,強(qiáng)者更強(qiáng)。

大通網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、自適應(yīng)網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。成都創(chuàng)新互聯(lián)2013年開(kāi)創(chuàng)至今到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專(zhuān)注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)。

編輯推薦:OSGi入門(mén)與實(shí)踐全攻略

Spring組織早在2006年已經(jīng)開(kāi)始了OSGi的整合工作,由于OSGi獨(dú)特的類(lèi)加載機(jī)制和一些其他的第三方類(lèi)包不同,所以整合有一定難度進(jìn)展比較緩慢。類(lèi)加載問(wèn)題也將是我們?cè)谑褂肙SGi開(kāi)發(fā)時(shí)遇到的最多的問(wèn)題。

第一步先搞定Spring的jar包。據(jù)說(shuō)Spring2.1會(huì)支持OSGi,為省點(diǎn)力氣我采用的是Spring2.1m3版,里面的jar包已經(jīng)開(kāi)始支持OSGi,但類(lèi)庫(kù)中沒(méi)有加入OSGi的整合類(lèi)庫(kù),比較郁悶。下載后的jar包需要修改一下里面的元數(shù)據(jù)文件MANIFEST.MF,找到Import-Package,將org.osgi.framework的版本修改為1.4.0,這個(gè)OSGi類(lèi)庫(kù)在Eclipse3.3版本中提供有。然后在文件末尾添加DynamicImport-Package:*,免得調(diào)試的時(shí)候總找不到類(lèi)定義。

這里我提一個(gè)建議:用Eclipse創(chuàng)建一個(gè)插件工程,將Spring的類(lèi)庫(kù)導(dǎo)入,作為我們使用的Spring庫(kù),而不是從官方網(wǎng)站下載的。這樣一者有助于我們理解OSGi的類(lèi)加載機(jī)制,確定程序在運(yùn)行時(shí)到底需要依賴(lài)那些類(lèi)包,為什么依賴(lài);二者有助于以后我們自己創(chuàng)建自己的插件。唯一的缺點(diǎn)就是需要不時(shí)的處理NoClassDefFoundError。

第二步搞定OSGi的整合類(lèi)庫(kù),先到http://www.springframework.org/osgi下載最新的Spring OSGi整合類(lèi)庫(kù),最新的版本是1.0M2。一共3個(gè)jar包:core、extender、io,然后分別打開(kāi)jar包,修改 MANIFEST.MF文件。在文件中找到Import-Package,將引用的Spring版本修改為所使用的Spring版本,例如我使用的是 2.1。

第三步設(shè)置Eclipse插件環(huán)境,這一步比較麻煩。
首先添加和設(shè)置jar包。將Spring OSGi的3個(gè)jar包,放到Eclipse安裝目錄的plugins目錄下,為更好的識(shí)別和修改,建議采用Eclipse插件的link機(jī)制,單獨(dú)建一個(gè)目錄來(lái)放我們的測(cè)試jar 包。另外還需要支持Spring的jar包(下載Spring2.1時(shí)自帶的),包括:asm,backport-util- concurrent,cglib-nodep,commons-attributes,commons-collections,aspectj,由于我在做OSGi、Spring和Hibernate的整合,所以有些是支持Hibernate的。好了現(xiàn)在該啟動(dòng)Eclipse,打開(kāi)Windows->Preferences->Plug- inDevelopment->TargetPlatform,在右側(cè)會(huì)看到Eclipse加載的所有插件包,選中我們需要的(除了上面提到的之外):org.eclipse.osgi,org.eclipse.osgi.util,org.eclipse.equinox.log(如果沒(méi)有這個(gè),需要到Eclipse官網(wǎng)下載Equinox的jar包)。

然后打開(kāi)Run->OSGiFramework->Bundles,創(chuàng)建一個(gè)運(yùn)行環(huán)境,把我們上一步添加的jar包選中,特別將 spring osgi-extender的插件的啟動(dòng)級(jí)別改為2?,F(xiàn)在來(lái)運(yùn)行一下,在Console窗口的命令提示符(osgi>)下,輸入 ss,就可以看到各個(gè)Bundle的狀態(tài);輸入log可以看到啟動(dòng)的日志。隨意輸入其它非OSGi命令的字符都可以看到命令幫助文檔,這點(diǎn)可以測(cè)試一下。

如果所有的Bundles都啟動(dòng)了,沒(méi)有報(bào)錯(cuò),那就表明我們的配置沒(méi)有什么大的問(wèn)題。但不代表一切正常,因?yàn)锽undle啟動(dòng)時(shí)不會(huì)對(duì)可選擇的類(lèi)庫(kù)導(dǎo)入進(jìn)行檢查,雖然啟動(dòng)了但卻不能用,而且沒(méi)有任何重要信息提示,這是后來(lái)郁悶我很久的重要原因。這時(shí)我們就需要用到插件調(diào)試模式了(不是指Run-Debug 的調(diào)試),打開(kāi)Run->OSGiFramework->Arguments,在Programarguments窗口的參數(shù)最后面加上"-debug"就可以打開(kāi)調(diào)試模式。先別高興,這只是第一步。檢查Eclipse目錄下是否有一個(gè)“.options”文件,如果沒(méi)有,就到 plugins目錄下找org.eclipse.osgi_$version.jar,將這個(gè)jar包中的“.options”文件copy一份放到 Eclipse目錄下。打開(kāi)這個(gè)文件就可以看到好多跟debug相關(guān)的配置,把org.eclipse.osgi/debug的配置改成true,就可以了。如果想看更多的debug信息,可以自己決定修改其余的配置。

然后再來(lái)運(yùn)行一下,Console居然出來(lái)了無(wú)數(shù)行的插件調(diào)試信息,有點(diǎn)頭大,在參數(shù)中去掉“-debug”它們就銷(xiāo)聲匿跡了。

關(guān)于Eclipse的插件配置還有好多,只是由于手頭缺少資料,也沒(méi)有嘗試。


網(wǎng)頁(yè)標(biāo)題:SpringOSGi的整合
網(wǎng)頁(yè)地址:http://www.dlmjj.cn/article/dhjheij.html