我正在尝试运行 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 容器?
Osmorc(IntelliJ OSGi 插件)使用您在 IDE 的 OSGi 设置(IDE 设置 -> OSGi -> 框架定义)中提供的平台名称和版本来设置 pax 运行器上下文。
名称是“平台”+您提供的名称,版本是逐字的。
列出了不同平台支持的版本here http://paxrunner.ops4j.org/display/paxrunner/OSGi+framework+to+be+started。不过,该列表并不是最新的。
您可以通过查看运行程序 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。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)