2011-07-18 8 views
1

私はOSGiフレームを使ってeclipse(Equinox)を使っていくつかのアプリケーションを開発しています。実際にはOSGi framework.iamには新しいものがありますが、Eclipseをstart commant(osgi> start) (osgi> ss)を使用してフレームワークがインストールされているかどうかをチェックしているときに 'Framework is shutdown'というメッセージが表示されます。また、Equinoxのjarファイル(org.eclipse.osgi_3.4.2.R34x_v20080826-1230 .jar).followingは、私はあなたがEclipseのプラグイン/バンドルを作成し、「として日食アプリケーションを実行している」ときにそれをテストしていると仮定しているすべてのコードバンドルが指定されていません

package testosgi; 

import org.osgi.framework.BundleActivator; 
import org.osgi.framework.BundleContext; 

public class Activator implements BundleActivator { 

    /* 
    * (non-Javadoc) 
    * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext) 
    */ 
    public void start(BundleContext context) throws Exception { 
     System.out.println("Hello java World!!"); 
    } 

    /* 
    * (non-Javadoc) 
    * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext) 
    */ 
    public void stop(BundleContext context) throws Exception { 
     System.out.println("Goodbye java World!!"); 
    } 

} 
+0

アクティベータは正常です。何が重要なのは、あなたが使っている起動設定ですか? OSGi?その起動設定にはどのようなバンドルを含めますか?あなたは '-Dosgi.noShutdown = true'で走っていますか?あなたの質問を更新してください。 –

答えて

1

ファーストです。これにより、ワークスペースバンドル(メインのEclipseにインストールされたバンドルと、自分のワークスペースで自分で作成したバンドル)が有効になる「ランタイム・エクリプス」が開きます。

startコマンドを使用すると、取得していないしている理由です「いいえバンドル(複数可)指定を!」

start my-bundle 

のようなバンドル名と引数を受け取る必要があります。 Eclipseのプラグインレジストリビュー(alt + shift + q、q - >プラグインタイプ - >プラグインレジストリを選択) バンドルを長いリストで検索する(フィルタボックスがあります) 。

  1. プラグインアイコンに緑色の「再生」アイコンはありますか? ある場合は、コンソールに「Hello World!」と入力してください。すでに印刷されているはずです。

  2. 矢印はありませんか? アイコンを右クリックし、「アドバンスドオーバーレイ表示」を選択します。もう一度右クリックし、「開始」を選択します。それはあなたのアクティベータを実行する必要があります。

基本的に、他のパッケージで実際に必要とされるまで、Eclipseはプラグインのアクティベータを実行していません。プラグインにUIが含まれている場合は、そのクラスの1つが必須であり、アクティベータは手動で実行する必要がないときに実行されるか、他のバンドルから使用しようとします。

plugin.xmlを開き、[概要]タブに移動します。 「クラスのいずれかがロードされているときにこのプラグインをアクティブにする」がオンになっていることを確認してください。

関連する問題