Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在OSGi中未收到通知的BundleActivator方法_Java_Osgi_Bundle - Fatal编程技术网

Java 在OSGi中未收到通知的BundleActivator方法

Java 在OSGi中未收到通知的BundleActivator方法,java,osgi,bundle,Java,Osgi,Bundle,我已经用激活器创建了一个包。在启动我的包时,应该调用activator方法,但它们不是。我以教程中提到的相同方式实现了它 package com.manning.sdmia; import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; public class Activator implements BundleActivator { private BundleCont

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

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

现在,当我使用start命令从OSGI提示符启动捆绑包时,应该在start时调用System.out.println,但它没有打印任何内容。

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

我刚刚遇到了同样的问题,我通过将这一行添加到清单文件中使其正常工作:

Bundle-ActivationPolicy: lazy

到目前为止,我看不出你发布的内容有什么问题。您可以添加您在shell中键入的内容以及输出内容的详细信息吗?是否有任何错误消息?是的,请添加更多详细信息。您能验证捆绑包是否正在运行吗?是。请添加更多详细信息。您是使用IDE来运行OSGi环境,还是通过控制台启动框架。顺便说一句,您使用哪个框架?在安装时,它给了我未知的捆绑包名称,而不是com.manning.sdmia.helloworld,我在控制台中声明了我的框架,并使用equinox ContainerId,您可以了解您的特定问题是否是由清单文件引起的吗?如果你能就这个问题提供反馈,我会很感兴趣的。也许我的问题与你的问题相同。安装时,我得到的是未知的捆绑包名称,而不是com.manning.sdmia.helloworld。因此,听起来你的清单有问题了。。。使用bnd生成它,将您从这些东西中解救出来