使用intelliJ IDEA开发OSGi

时间:2016-09-09 07:54:45

标签: java intellij-idea osgi apache-felix

我正在学习使用intelliJ IDEA开发OSGi应用程序,我选择了Apache's felix Apache的felix作为运行时,我遇到的问题如下: the screenshot is here

我已经开发了模块示例1,2和2b,并且2b的包结构与2相同,但是服务接口位于模块2中,模块2b仅用于交替服务,但我不能成功地做到了,felix告诉我模块2b找不到self.gale.services.DictionaryService,我不知道如何使模块2b可以找到模块2中确切包中定义的服务。

I guess the problem is here

  

模块2b中Activator的 start 方法:

public void start(BundleContext context)
{
    Hashtable<String, String> props = new Hashtable<>();
    props.put("Language", "French");
    context.registerService(
            DictionaryService.class.getName(), new DictionaryServiceImpl(), props);
}
  

模块2b的清单属性 Import-Package:org.osgi.framework,self.gale.services

我的意思是包self.gale.services位于模块2中,而不是2b,但似乎无法找到该包。

1 个答案:

答案 0 :(得分:2)

您还需要提供&#34; self.gale.services&#34;暴露在您的捆绑包的出口包装中&#34; 2&#34; MANIFEST文件并确保&#34; self.gale.services&#34;的版本在两个MANIFEST文件中相互对应。