当前位置: 首页 > 知识库问答 >
问题:

用intelliJ思想开发OSGi

郑卜鹰
2023-03-14

我正在学习使用intelliJ IDEA开发OSGi应用程序,我选择了Apache's felixApache's felix作为运行时,我遇到的问题如下:屏幕截图在这里

我已经开发了模块示例1、2和2b,2B的包结构与2相同,但服务接口位于模块2,模块2B只是为了替代服务而设计的,但我不能成功地做到这一点,felix告诉我模块2B找不到self.gale.services.dictionaryservice,我不知道如何使模块2B能找到模块2中确切的包中定义的服务。

我想问题就在这里

模块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,但它似乎找不到那个包。

共有1个答案

郭星文
2023-03-14

您还需要提供在捆绑包“2”清单文件的导出包中公开的“self.gale.services”,并确保两个清单文件中的“self.gale.services”的版本相互对应。

 类似资料:
  • 我转到设置->错误->序列化问题->没有'serial versionuid'的Serializable类,但它仍然没有显示警告。我的类PKladrBuilding父类实现了接口可序列化。 代码的一部分:

  • 您能用Intellij IDEA调试maven目标吗?我知道我可以右键单击并运行调试。但是,maven插件没有出现在我的外部库列表中,所以我不能进入代码并设置断点。因此,Debug像Run一样不停地运行目标。 我已经为https://github.com/searls/jasmine-maven-plugin编写了自定义的specRunner,但是,$specs$仍然是空的。所以我试着看看哪些文件

  • 我非常不熟悉Git的方面。如果使用来搁置未完成的工作,那么,是什么呢?你会用它做什么? 例如,在更新项目中(从VCS菜单中) 一个人会得到(在IntelliJ IDEA 2019.2)

  • 如果我使用diretory“C:\development\workspace\java\vertx\hello”中的命令行,并使用命令“vertx run jsverticle.js”,那么一切都正常。如果我从IntelliJ运行应用程序,我会得到一个异常:“部署verticle java.lang.ClassNotFoundException失败:jsVerticle.js”。如果我使用程序参数

  • 我们最近从maven迁移到gradle,自迁移以来,我们在部署方面遇到了以下问题。 我们gradle.kts与战争有关的部分如下: 我们可以轻松地部署创建的工件,并在其主机端口上访问其endpoint。 然而,一旦我们部署了辅助工件(在不同的端口上),第一个部署的服务就会突然失败,并出现以下错误: 完整堆栈跟踪如下:https://gist.github.com/knyttl/25711ccd79

  • 当我试图使用Android Gradle插件3.0.与Intellij IDEA,我得到错误: 但我的IntelliJ版本高于2017.2,它应该与AS 3.0的gradle插件配合使用。