1

有哪些配置更改可以使 Eclipse PDE 最好地支持 Equinox 和 Felix?

这是我目前遇到的一个示例问题。我可以通过 Eclipse OSGi 框架启动器运行我的应用程序。同样,在 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 进行更接近的配置......基本上是为了使其在加载包时更加严格?

4

3 回答 3

1

我认为 Equinox的行为确实像 Felix,如果你单独运行它的话。正如osgi.org上所述,它更像是 Eclipse 遗留的东西,而不是 Equinox 的东西。

据我所知,没有任何方法可以覆盖 Eclipse 的引导委托,但我很想被证明是错误的,因为我经常遇到这个问题。

于 2012-07-04T08:53:57.353 回答
1

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

于 2012-07-04T16:19:46.277 回答
0

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

于 2012-07-04T10:21:24.973 回答