我创建了一个带有激活器的捆绑包。在启动我的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
应该在启动时调用,但它不会打印任何内容。
答案 0 :(得分:3)
如果您的清单看起来像是在这里打印出来,那么它就不是一个合适的清单。删除第一行,标题名称前没有空格。
答案 1 :(得分:2)
我遇到了同样的问题,我通过将这一行添加到Manifest文件来实现它的工作:
Bundle-ActivationPolicy: lazy