Eclipse配置支持双Equinox / Felix环境

时间:2012-07-04 08:30:55

标签: eclipse osgi equinox eclipse-pde apache-felix

有哪些配置更改可以使Eclipse PDE最佳支持同时使用Equinox和Felix?

这是我目前遇到的一个示例问题。我可以通过Eclipse OSGi Framework启动器运行我的应用程序。同样,PDE中也没有编译问题。但是,当在Felix中运行时,我将获得NoClassDefFoundErrors:

java.lang.NoClassDefFoundError: org/w3c/dom/DOMException

我的理解是我的Eclipse设置在这里有问题; org.w3c.dom不是'默认'OSGi包,在Eclipse中运行它时不应该加载。同样,我的代码中org.w3c.dom.DOMException的导入应该是一个错误。

我知道如何为Felix修复此问题:声明一个Import-Package。但这不是我的问题。我的问题是如何强制Eclipse PDE对Felix进行更紧密的配置......基本上是为了使加载包更严格?

3 个答案:

答案 0 :(得分:1)

我认为Equinox 表现得像Felix一样,如果你单独运行它。正如osgi.org所述,它更像是一个Eclipse遗留物而不是Equinox物。

据我所知,没有任何办法可以覆盖Eclipse的启动授权,但我很乐意被证明是错误的,因为我经常遇到这个问题。

答案 1 :(得分:1)

如果您正在开发服务器应用程序,我建议您根本不使用PDE。我正在使用maven和maven bundle插件来开发我的包。然后我在Apache karaf上部署。通过使用karaf dev:watch命令和远程调试,调试也非常简单。我从来没有真正错过PDE的功能,但我的maven构建从未如此好。

答案 2 :(得分:0)

这听起来就像启动器将bootdelegation设置为传统模式。请参阅OSGi Wiki上的以下页面:http://wiki.osgi.org/wiki/Why_does_Eclipse_find_javax.swing_but_not_Felix%3F