BundleActivator方法未在OSGi中收到通知

时间:2012-07-11 09:38:00

标签: java osgi bundle

我创建了一个带有激活器的捆绑包。在启动我的bundle时,应该调用激活器方法,但它们不是。我已经按照教程中提到的相同方式实现了它。

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提示符启动捆绑包时,启动命令System.out.println应该在启动时调用,但它不会打印任何内容。

2 个答案:

答案 0 :(得分:3)

如果您的清单看起来像是在这里打印出来,那么它就不是一个合适的清单。删除第一行,标题名称前没有空格。

答案 1 :(得分:2)

我遇到了同样的问题,我通过将这一行添加到Manifest文件来实现它的工作:

Bundle-ActivationPolicy: lazy