這一篇講另半部分:怎麼在http容器(如tomcat)中嵌入equinox。
可以看到這其中已經有乙個eclipse的目錄結構,和平時新增外掛程式一樣,只要把我們新建的bundle放到plugins目錄下,即可。
安裝完這個war後,啟動tomcat,待tomcat啟動後,在console上按幾下回車,就可以得到osgi控制台了,如下:
可以看到,要在http容器裡嵌入equinox非常簡單。
不過有乙個比較重大的問題:外掛程式不會自動更新,例如一旦tomcat啟動後,再有新的外掛程式扔進plugins目錄下,它不會被自動載入和啟動,必須把tomcat重啟,才能生效。
我也不知道怎麼配置就可以自動載入,然後我又想要這個功能,沒辦法就只能自己寫了。
假設在eclipse下定義乙個新的目錄deploy,每隔一段時間就去掃瞄這個deploy目錄,如果有檔案或資料夾,就試圖把它(它們)作為乙個bundle去安裝、啟動,然後它bundle從deploy目錄下移到plugins目錄下。
所以,我們需要有乙個新的外掛程式,用來掃瞄deploy目錄並且安裝和啟動找著的bundle;然後我們把這個外掛程式讓到plugins裡,讓它隨著tomcat啟動而啟動。
剩下的事情就是怎麼實現這個bundle了。
1.定期掃瞄
new thread() catch (interruptedexception e)
deployallunder(deployfolder, pluginsfolder);}}
}.start();
2.安裝和啟動
private void deployallunder(file deployfolder, file pluginsfolder) catch (bundleexception e)
} }
3.移動和刪除
private boolean moveinstalled2plugins(file f, file pluginsfolder)
private boolean removeinstalledfile(file f) else if (f.isdirectory())
}return f.delete();
} return true;
}
4.得到deploy和plugins目錄
private file getdeployfolder()
return deployfolder;
} private file getpluginsfolder()
完了以後,以後每次有新的bundle,只需要放到deploy目錄下即可,過一會就會被掃瞄到並且被自己安裝和啟動。 在VC 2005中內嵌彙編
在vc 2005中內嵌彙編 一na和nb進行數值交換 intna 10 intnb 11 asm 二 加法運算 intassembleradd int na,int nb return nb 三 減法運算 intassemblersub int na,int nb return na 四 採用彙編呼...
在osgi中應用log4j(二)
在單純的osgi環境中,利用log4j自帶的配置檔案讀寫工具,讀寫log4j.xml檔案,載入日誌配置是可以的 domconfigurator.configure log4j.xml 解決這個問題的方法,是讓bundle在自己的classloader體系中,載入所需要的物件,所以,要把讀配置檔案的c...
在gdb中檢視stl容器
在gdb中檢視stl容器 本文主要內容來自於http sourceware.org gdb wiki stlsupport 目前,gdb預設不能print出stl容器的內容,但是網上有好多種方案來做這件事,我試用了一下,比較方便的是以下兩種 pvector,plist,pmap,pset,pdequ...