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

4

2 回答 2

4

如果您的清单看起来像您在此处打印的,那么它不是正确的清单。删除标题名称前的第一行和没有空格。

于 2012-07-12T14:54:59.887 回答
2

我刚刚遇到了同样的问题,我通过将此行添加到 Manifest 文件使其工作:

Bundle-ActivationPolicy: lazy
于 2013-03-26T18:06:04.263 回答