我正在学习使用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中激活器的启动方法:
public void start(BundleContext context)
{
Hashtable<String, String> props = new Hashtable<>();
props.put("Language", "French");
context.registerService(
DictionaryService.class.getName(), new DictionaryServiceImpl(), props);
}
模块2b导入包的清单属性:org.osgi.framework,self.gale.services
我的意思是包
self.gale.services
位于模块2中,而不是此2b中,但似乎找不到该包。 最佳答案
您还需要提供在软件包“ 2” MANIFEST文件的导出包中公开的“ self.gale.services”,并确保两个MANIFEST文件中的“ self.gale.services”版本彼此对应。
关于java - 使用智能IDEA开发OSGi,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39406555/