【发布时间】:2012-07-11 09:38:00
【问题描述】:
我创建了一个带有激活器的捆绑包。在启动我的包时,应该调用激活器方法,但它们不是。我已经按照教程中提到的方式实现了它。
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 应该在启动时被调用,但它没有打印任何内容。
【问题讨论】:
-
到目前为止,我看不出您发布的内容有什么问题。您能否添加您在 shell 中键入的内容以及输出内容的详细信息?是否有任何错误消息?
-
是的,请添加更多详细信息。你能验证捆绑包正在运行吗?
-
是的。请添加更多细节。您是使用 IDE 来运行 OSGi 环境,还是只是通过控制台启动框架。顺便说一句,您使用哪个框架?
-
在安装它时给我未知的捆绑名称而不是 com.manning.sdmia.helloworld 我从控制台说明我的框架并使用Equinox容器
-
您是否查明您的具体问题是否是由清单文件引起的?我have a similar problem,如果您就这个问题提供反馈,我会很感兴趣。也许我的问题与你的重复。