5

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

但是,一旦我尝试运行该项目,我就会遇到麻烦。我使用 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 容器?

4

1 回答 1

9

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

名称是“平台”。+您提供的名称,版本是逐字记录的。此处列出了不同平台支持的版本。不过,该列表不是最新的。

您可以通过查看 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。

于 2011-01-20T10:53:10.080 回答