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

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

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

    程序人生

    在Java中摸爬滾打的日子

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      6 Posts :: 1 Stories :: 19 Comments :: 0 Trackbacks
    概述:   
        接觸OSGi已經有兩三年了,而真正運用OSGi于項目之中,也將近兩年。這兩年來,因為OSGi的不太成熟也讓我飽受歷練。
        如果你對OSGi這個名詞有點陌生,那本系列教程就不太適合你了,如果你想學習本系列教程,請你先去了解OSGi的相關概念。
        拽寫本系列教程的目的在于給想要在企業應用中使用OSGi技術的同學朋友們以實際經驗指導,希望能給你帶來收獲。
    名詞解釋:
        OSGi:OSGi是Open Service Gateway Initiative的簡稱,可以稱是一種技術,也可以稱是一個平臺,亦可稱之為一種規范。
        Bundle:OSGi中最重要的元素之一,也是OSGi中最小的物理元素。它是一個jar包,但它持有一份能夠進行自我描述的元數據文件(MANIFEST.MF),雖然普通的jar包中也存在有MANIFEST.MF文件,但非Bundle的jar的MANIFEST.MF文件中缺少進行自我描述的元數據信息。
        Equinox:OSGi的一個參考實現,也是Eclipse3.2+的核心。
        SSH腳手架:SSH腳手架是指由Struts+Spring+Hibernate組合在一起的開發框架。
        Spring-DM:Spring-DM是SpringDynamicModules的簡稱,是由SpringSource提供的,致力于整合Spring框架和OSGi平臺的一個框架。
        Plug-in:這里的Plug-in指基于OSGi技術的插件工程。
        Maven:用來管理項目依賴及構建的一個腳本工具。
        EBR:這里的EBR是SpringSource提供的Enterprise Bundle Repository的簡稱
    入門要求:
        學習本系列教程的同學需要了解SSH腳手架,熟悉Eclipse IDE開發,對Maven有一定的了解。
    前期準備
        JDK1.6+
        Eclipse3.4+
        Spring2.5.6+
        Spring-DM1.1.2+
        Maven2.0.9+
        EBR訪問地址:http://www.springsource.com/repository/app
    需要解決的問題
        要使SSH腳手架能夠正常運行于OSGi環境,那我們首先要解決的問題有三。其一是cglib的類加載器的改造,其二是解決數據庫驅動包跟數據庫連接池缺少依賴的問題,其三就是整理運行于OSGi環境下的SSH腳手架需要依賴的Bundle對象。
        也許有人會說,要讓Java應用程序運行OSGi那有什么困難的呢?當然,解決問題的手段多種多樣,但要創建一個標準的OSGi基于OSGi的應用程序,還確實不是那么的簡單。
        解決了以上所說的三個問題,基于SSH開發OSGi應用就不成問題。但該如何解決以上三個問題呢,以及解決了以上三個問題后如何來規范這種基于OSGi環境下的SSH開發呢,又該如何保證開發效率能夠保持在或更優于以往開發非OSGi應用時等一系列問題呢。要想了解如何解決,敬請關注本系列文章。


    posted on 2010-06-15 00:17 瀟湘振宇 閱讀(5307) 評論(9)  編輯  收藏 所屬分類: OSGi系列

    Feedback

    # re: 基于OSGi的Web應用開發系列一 2010-06-15 04:49 臨遠
    呵呵,過來參拜一下使用spring-dm做項目的同志。還不清楚對cglib改造有什么用途,我們是使用暴力反射讓hibernate實現動態注冊實體類。spring基本已經被拋棄了。struts最后也沒整合到osgi里,基本來說,改造以后系統已經不能通用了。期待博主的見解,多謝。  回復  更多評論
      

    # re: 基于OSGi的Web應用開發系列一 2010-06-15 09:31 瀟湘振宇
    @臨遠
    改造cglib的目的是為了正常使用Hibernate的延遲加載,Hibernate在創建代理的時候,因為OSGi的特殊性,每個Bundle擁有獨立的一個ClassLoader(Fragment除外),cglib通過其AbstractClassGenerator.create方法創建對象時,先獲取到相應的ClassLoader對象緩存起來,在延遲加載的時候再通過緩存起來的ClassLoader來加載指定的對象。但是cglib獲取的默認ClassLoader對象是POJO所在的Bundle的ClassLoader對象,而通過此ClassLoader來加載HibernateProxy類,自然會出現NoClassDefFoundError之類的異常。這個問題在BlueDavy的OSGi進階中有詳細的說明。
    在Hibernate這一層使用暴力反射讓hibernate實現動態注冊實體類這樣的方法我覺得過于復雜,我覺得沒必要這樣做。我是通過Fragment來實現的。這樣理解想來也容易。  回復  更多評論
      

    # re: 基于OSGi的Web應用開發系列一(前言) 2010-06-15 12:15 晉哥哥
    持續關注中  回復  更多評論
      

    # re: 基于OSGi的Web應用開發系列一(前言) 2010-06-17 15:21 特立獨行
    持續關注中
    請博主堅持更新哦~加油  回復  更多評論
      

    # re: 基于OSGi的Web應用開發系列一(前言) 2010-06-17 15:26 瀟湘振宇
    多謝關注!昨天上午差不多完基于OSGi的Web應用開發系列三(構建項目框架),只是因為剛搬了家,而新租的房子那里還沒有開通網絡,需要過一兩天才能發布!  回復  更多評論
      

    # re: 基于OSGi的Web應用開發系列一(前言) 2010-06-19 16:35 Johnny.Liang
    @瀟湘振宇

    支持原創  回復  更多評論
      

    # re: 基于OSGi的Web應用開發系列一(前言) 2010-08-18 21:14 黃晨
    如何通過fragment部署entity,還是不知道。Fragment和主bundle共用一個classloader.但是我創建了一個 hibernat bundle和一個DomainObject bundle. 在DomainObject bundle中有兩個通過anotation定義的pojo: Test和User. 在hibernate bundle中我通過addAnnotatedClass添加這兩個pojo.可是總是報錯:Test cannot be resolved to a type 和 User cannot be resolved to a type。 即使我在Fragment中將兩個pojo所在的包export,在hibernate bundle中import也沒用。為什么加載不了pojo class呢?有什么需要注意的么?   回復  更多評論
      

    # re: 基于OSGi的Web應用開發系列一(前言) 2010-08-20 09:26 瀟湘振宇
    @黃晨
    這里需要注意的一點是,你在Hibernate Bundle中通過addAnnotatedClass添加這兩個POJO,而這個是通過在SessionFactory Bean中配置,如果確定POJO的Bundle是Hibernate Bundle的Fragment的話,那應該是沒問題的,但如果不是的話,那就需要確保在Hibernate Bundle的MANIFEST.MF文件中有Import-package這兩個POJO所在的包。  回復  更多評論
      

    # re: 基于OSGi的Web應用開發系列一(前言) 2015-07-06 17:34 Wick
    經過幾年的發展,目前OSGi已經成熟,很多公司開始使用,最著名的當屬JIRA,國內的有JXADF(http://osgi.jxtech.net)。  回復  更多評論
      

    主站蜘蛛池模板: 国产综合激情在线亚洲第一页| 亚洲无人区一区二区三区| 亚洲精品网站在线观看你懂的| 大学生一级毛片免费看| 亚洲电影免费在线观看| 免费av片在线观看网站| 亚洲韩国精品无码一区二区三区| 中文在线日本免费永久18近| a级毛片毛片免费观看久潮喷| 国产精品久久永久免费| 成人免费午夜在线观看| 亚洲人成色7777在线观看不卡| 精品在线免费视频| 日韩亚洲人成网站| 亚洲免费在线播放| 国产成人免费a在线资源| 亚洲综合熟女久久久30p| 亚洲欧洲日产国码二区首页| 国产精品亚洲色婷婷99久久精品| 免费看小12萝裸体视频国产| 美女黄色毛片免费看| 国产精品亚洲w码日韩中文| 免费人成激情视频在线观看冫| 国产乱子伦精品免费女| 一区二区3区免费视频| 亚洲视频在线免费观看| 免费毛片在线看不用播放器| 亚洲一区综合在线播放| 成熟女人特级毛片www免费| 亚洲欧洲在线观看| 成年性午夜免费视频网站不卡| 亚洲AV色无码乱码在线观看 | 中文字幕亚洲一区二区三区| 成全视频高清免费观看电视剧| 亚洲视频在线不卡| 免费鲁丝片一级在线观看| 97在线视频免费公开视频| 亚洲乱码一二三四区麻豆| 亚洲第一页综合图片自拍| 四虎国产成人永久精品免费| 久久久久久亚洲精品无码|