我正在尝试从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容器?
答案 0 :(得分:9)
Osmorc(IntelliJ OSGi插件)使用您在IDE的OSGi设置中提供的平台名称和版本设置pax runner上下文(IDE设置 - > OSGi - >框架定义)。
名称是“platform。”+您提供的名称,版本是逐字的。 列出了here不同平台的受支持版本。但该列表并不是最新的。
您可以通过查看转轮jar来检查实际版本。转到你的idea_home / plugins / osmorc / lib,打开pax-runner -... jar。 META-INF目录包含每个平台的子目录,其中包含definition- $ VERSION.xml。
对于您的示例,您可以看到pax-runner 1.5.0中不支持Felix 3.0.6。最新支持的版本是3.0.2。