<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    破門點(diǎn)滴(Java技術(shù)版)

    在日常學(xué)習(xí)和工作中記錄

      BlogJava :: 首頁 ::  :: 聚合  :: 管理
      15 Posts :: 7 Stories :: 36 Comments :: 0 Trackbacks
     

    完成通過測(cè)試程序調(diào)用 Triones Framework Runtime 插件的工作:

    1、? 只需要利用 Eclipse 的核心插件包。

    org.eclipse.core.runtime???????? // Eclipse Plugin Runtime

    org.eclipse.osgi??????????????????????????? // Eclipse OSGi Implemention

    org.eclipse.update????????????????? // Eclipse Plugin Loader/Updater

    2、? 平臺(tái)啟動(dòng)就自動(dòng)調(diào)用了 Triones 核心產(chǎn)品 org.softme.triones.runtime.framework 。部分輸出如下:

    Time to load bundles: 10

    Starting application: 921

    ------------------------------------

    Triones Framework: Started!

    Triones Framework: Hello!

    Triones Framework: Stoped!

    ------------------------------------

    ?

    3、? EclipseStarter 設(shè)計(jì)為應(yīng)用運(yùn)行完畢就自動(dòng)調(diào)用 shutdown 使得平臺(tái)退出, Triones 框架需要等待 ServletContext Destroyed 事件,因此必須對(duì)此進(jìn)行處理:

    方案一: 創(chuàng)建 Triones 系統(tǒng)任務(wù),并將其掛起直到獲得 ContextDestroyed 事件。

    方案二: 擴(kuò)展 EclipseStarter 修改運(yùn)行程序,不自動(dòng)調(diào)用 shutdown ;等待 ContextDestroyed 事件由 TrionesContextListener 顯式調(diào)用 shutdown 方法。

    ?

    研究了一下午,方案一似乎不太合理,掛起的系統(tǒng)進(jìn)程??郁悶中 …..

    ?

    考慮方案二 ….


    以上,實(shí)現(xiàn)方案二:

    通過反射直接調(diào)用 EclipseStarter startup(String[], Runable) run(Object) 方法以啟動(dòng)平臺(tái)并保留在內(nèi)存;關(guān)閉平臺(tái)時(shí)調(diào)用 EclipseStarter shutdown() 方法。

    ?

    問題: 如何保留進(jìn)程,如何與 Context 環(huán)境交互?

    總不能全部使用反射吧?

    方案: 通過反射取到 TrionesFramework 對(duì)象。

    步驟一: 對(duì) Triones Runtime 采取 分離接口模式

    步驟二: 修改 launcher.EclipseLanucher 對(duì)象,通過反射獲取 TrionesFramework

    1)????? 需要通過 URLClassLoader 加載 Triones Runtime 插件;

    2)????? 需要修改 DevPath ,增加 Triones Runtime 的插件路徑。

    3)????? 增加接口,取得 TrionesFramework 對(duì)象。

    ?

    實(shí)現(xiàn)了對(duì) TrionesStarter 的反射調(diào)用啟動(dòng)和關(guān)閉 Eclipse 平臺(tái),但是 對(duì) getFramework 方法調(diào)用失敗!!!!!

    Get the Triones framework....

    java.lang.reflect.InvocationTargetException

    ???????? at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    ???????? at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

    ???????? at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

    ???????? at java.lang.reflect.Method.invoke(Unknown Source)

    ???????? at org.softme.triones.launcher.TrionesEclipseLauncher.getFramework(TrionesEclipseLauncher.java:815)

    ??

    Caused by: java.lang.NoClassDefFoundError: org/eclipse/core/runtime/Platform

    ???????? at org.softme.triones.runtime.TrionesFramework.<init>(TrionesFramework.java:55)

    ???????? at org.softme.triones.runtime.TrionesStarter.getFramework(TrionesStarter.java:52)

    ???????? ... 22 more

    ?

    看來設(shè)計(jì)架構(gòu)上還是出了問題,檢查一下 URLClassLoader 的文檔:

    StartupClassLoader 僅僅包含啟動(dòng)包的類路徑,而 Triones 必須將所有類路徑加載到 context 中,才能夠?qū)崿F(xiàn) Context Servlet )與框架的交互。

    以上方案失敗!! ? Sign….. : ( ):

    ?

    改進(jìn)方案,設(shè)法使得 OSGi 類路徑加載到 Context 路徑中!

    ( 雖然難度大了點(diǎn),但是必須解決 )


    不得窺道門,不得悟佛門,不得入窄門,實(shí)乃破門。
    posted on 2006-03-27 10:20 破門 閱讀(416) 評(píng)論(0)  編輯  收藏 所屬分類: Triones
    主站蜘蛛池模板: 免费女人高潮流视频在线观看 | 免费国产黄网站在线观看动图| 国产成人免费ā片在线观看| 亚洲免费在线观看| 亚洲导航深夜福利| 亚洲精品偷拍视频免费观看| 精品一区二区三区免费| 亚洲国产欧美日韩精品一区二区三区 | 在线观看免费精品国产| 中国一级特黄的片子免费| 亚洲国产成人91精品| 亚洲男人第一无码aⅴ网站| 30岁的女人韩剧免费观看| 人妻巨大乳hd免费看| 久久精品国产精品亚洲毛片| 免费A级毛片无码A∨男男| 啦啦啦完整版免费视频在线观看| 爱情岛论坛亚洲品质自拍视频网站| 亚洲国产人成网站在线电影动漫| 免费看的一级毛片| 毛片无码免费无码播放| 二级毛片免费观看全程| tom影院亚洲国产一区二区| 久久亚洲国产欧洲精品一| 国产一级淫片a免费播放口之| 久久国产免费一区| 一区二区三区免费精品视频| 久久夜色精品国产噜噜亚洲a| 亚洲国产成人一区二区精品区 | h视频在线免费看| 国产精品无码永久免费888| 亚洲另类无码专区首页| 久久久久亚洲精品天堂| 亚洲中文字幕日产乱码高清app| 日韩视频在线免费观看| 黄网站色在线视频免费观看| 国产精品偷伦视频观看免费| 五级黄18以上免费看| 男男gvh肉在线观看免费| 午夜在线a亚洲v天堂网2019| 中文字幕亚洲色图|