intellij-idea - 尝试运行 OSGi 调试目标时支持“不支持平台”

标签 intellij-idea osgi pax-runner

我正在尝试从 IntelliJ Idea 运行一个小型 OSGi 项目。我在 Idea 的 OSGi 配置部分添加了 Equinox 容器。然后我将 OSGi facet 添加到项目中。到目前为止,一切看起来都很好。

但是,一旦我尝试运行该项目,我就会遇到麻烦。我使用 IntelliJ Idea 的“OSGi Bundles”运行程序。在那里我选择我的项目包和 OSGi 容器并运行它。问题从这里开始。我总是同样的错误信息:

             ___
            /  /
           /  / Oops, there has been a problem!
          /  /  
         /__/   Platform [platform.felix 3.0.6] is not supported
        ___
       /__/     

     -> Exception caught during execution:
    org.ops4j.pax.runner.ConfigurationException: Platform [platform.felix 3.0.6] is not supported
        at org.ops4j.pax.runner.Run.installPlatform(Run.java:611)
        at org.ops4j.pax.runner.Run.start(Run.java:221)
        at org.ops4j.pax.runner.Run.main(Run.java:148)
        at org.ops4j.pax.runner.Run.main(Run.java:121)

我尝试使用其他 OSGi 容器,如 Felix 或 Knopflerfish,但遇到了同样的问题。有谁知道我做错了什么。或者 IntelliJ 支持哪些版本的 OSGi 容器?

最佳答案

Osmorc(IntelliJ OSGi 插件)使用您在 IDE 的 OSGi 设置(IDE 设置 -> OSGi -> 框架定义)中提供的平台名称和版本来设置 pax runner 上下文。

名称是“平台”+您提供的名称,版本是逐字逐句的。
列出了不同平台支持的版本 here .但是,该列表不是最新的。

您可以通过查看 runner jar 内部来检查实际版本。转到您的idea_home/plugins/osmorc/lib,打开pax-runner-...jar。 META-INF 目录包含每个平台的子目录,定义为-$VERSION.xml。

对于您的示例,您可以看到 pax-runner 1.5.0 中不支持 Felix 3.0.6。最新支持的版本是 3.0.2。

关于intellij-idea - 尝试运行 OSGi 调试目标时支持“不支持平台”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4585933/

相关文章:

scala - 尝试在 IntelliJ 中添加 Spark 依赖项时出现 OpenJDK Server VM 和 Unresolved 依赖项警告

java - 找不到错误 : cannot access AnimatedImage class file for com. facebook.imagepipeline.animated.base.AnimatedImage

java - 从 Intellij 在远程主机上部署/运行 jvm 应用程序

java - Apache Karaf 是否处理任何 JAR 或 WAR 的热部署?

java - AEM 6.3 使用 OSGi R6 注释和 Sling 模型

java - Pax 运行者出错

maven-pax-provision + equinox : java. lang.Long 无法转换为 java.lang.String

angularjs - 无法运行tomcat7

java - 为什么用 "throws Exception"声明 OSGI BundleActivator 方法?

java - 如何分析 OSGi 部署的执行情况?