OSGi應用中怎么啟動bundle

本篇內容主要講解“OSGi應用中怎么啟動bundle”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“OSGi應用中怎么啟動bundle”吧!

因為努力和真誠,有更多的客戶和我們聚集在一起,為了共同目標,創(chuàng)新互聯(lián)公司在工作上密切配合,從創(chuàng)業(yè)型企業(yè)到如今不斷成長,要感謝客戶對我們的高要求,讓我們敢于面對挑戰(zhàn),才有今天的進步與發(fā)展。從網(wǎng)站到小程序制作,軟件開發(fā),app開發(fā)定制,十年企業(yè)網(wǎng)站建設服務經(jīng)驗,為企業(yè)提供網(wǎng)站設計,網(wǎng)站運營一條龍服務.為企業(yè)提供營銷型網(wǎng)站,按需搭建網(wǎng)站,原創(chuàng)設計,十年品質,值得您的信賴.

OSGi即Java模塊系統(tǒng),而OSGi bundle則是OSGi中軟件發(fā)布的形式。本文講述OSGi應用中如何自動啟動bundle。作者最近開發(fā)了一個 OSGi 的應用,部署之后發(fā)現(xiàn),當應用啟動的時候,幾乎所有 bundle 都處于 Resolved 狀態(tài),而不是 Started 狀態(tài)。

51CTO編輯推薦:OSGi入門與實踐全攻略

怎樣啟動bundle 呢?有如下幾種方法 :

1. 手工啟動bundle,即在 console 中使用命令 start N 來逐個啟動所有bundle,其中 N 表示每個 bundle 的 id

這種方法過于麻煩,要耗費大量時間,因此不可取。

2.在配置文件中聲明為自動啟動bundle。在 WEB-INF\eclipse\configuration 中的 config.ini 中,如下配置:

osgi.bundles=bundle1@start, bundle2@start,......bundleN@start

這種方法可以自動啟動所有bundle,但是寫起來仍然比較麻煩,需要把所有bundle 一個一個都配置為@start。

3. 在應用的所有bundle 中選擇一個bundle,將其在 config.ini 中配置為自動啟動,然后在這個bundle 中,再把

應用的所有其他bundle 啟動起來。假定該bundle 的Activator 類為 OSGiStartingBundleActivator, 代碼如下:

public class OSGiStartingBundleActivator implements BundleActivator  {      public static BundleContext bundleContext = null;            public void start(BundleContext context) throws Exception      {          bundleContext = context;                   // start bundles if it has been installed and not started          Bundle[] allBundles = context.getBundles();          for (int i=0; i<allBundles.length; i++)          {              int currState = allBundles[i].getState();              if ( Bundle.ACTIVE != currState && Bundle.RESOLVED==currState  )              {                      System.out.println("starting bundle : " + allBundles[i].getSymbolicName());                       try                     {                              allBundles[i].start();                      }                      catch (BundleException e)                      {                              e.printStackTrace();                      }                }            }      }       public void stop(BundleContext context) throws Exception      {      }   }

到此,相信大家對“OSGi應用中怎么啟動bundle”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!

標題名稱:OSGi應用中怎么啟動bundle
URL分享:http://bm7419.com/article10/jcecdo.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護、移動網(wǎng)站建設小程序開發(fā)、動態(tài)網(wǎng)站、網(wǎng)站策劃虛擬主機

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)