2

アクティベーターを含むバンドルを作成しました。バンドルを開始するときに、アクティベーター メソッドを呼び出す必要がありますが、呼び出されません。チュートリアルで述べたのと同じ方法で実装しました。

package com.manning.sdmia;

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


public class Activator implements BundleActivator { 
    private BundleContext context;

    public void start(BundleContext context) throws Exception {
        System.out.println("In bundle");
    }

    public void stop(BundleContext context) throws Exception {
        System.out.println("In stop");
    }
}

これは私のMANIFEST.MFファイルです:

enter code here
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
Bundle-Name: Spring DM Hello World 
Bundle-SymbolicName: com.manning.sdmia.helloworld
Bundle-Version:1.0.0
Bundle-Activator: com.manning.sdmia.Activator
Export-Package:com.manning.sdmia
Import-Package: org.osgi.framework

ここで、OSGI プロンプトから start コマンドを使用してバンドルを開始すると、開始時System.out.printlnに呼び出されるはずですが、何も出力されません。

4

2 に答える 2

4

マニフェストをここに印刷したように見える場合、それは適切なマニフェストではありません。ヘッダーの名前の前の最初の行とスペースを削除します。

于 2012-07-12T14:54:59.887 に答える
2

同じ問題が発生したばかりで、次の行をマニフェスト ファイルに追加して機能させました。

Bundle-ActivationPolicy: lazy
于 2013-03-26T18:06:04.263 に答える