【问题标题】:Eclipse configuration to support dual Equinox/Felix environmentsEclipse 配置以支持双 Equinox/Felix 环境
【发布时间】:2012-07-04 08:30:55
【问题描述】:

有哪些配置更改可以使 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 的配置......基本上是为了使其在加载包时更加严格?

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 好的,谢谢。我将编辑问题以专注于 Eclipse 启动器和 PDE。
    【解决方案2】:

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

    【讨论】:

    • 是 Maven 与 bnd 还是您自己管理清单?我的理解是,如果你在做后者,那 two 地方你必须指定依赖关系。
    • 我使用 felix 的 maven bundle 插件,它在内部使用 bnd。所以只有一个地方可以指定依赖。 Bnd 还自动检测大多数依赖项。所以大多数时候没什么可做的。
    【解决方案3】:

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

    【讨论】:

    • 这里是发送的选项:-Declipse.ignoreApp=true -Dosgi.noShutdown=true -Dosgi.dev -Dosgi.debug=/home/gravelld/eclipse-workspaces/bliss/com.elsten .bliss.bundle/.options -Declipse.log.level=ALL -Dbliss.obr.updaterepository=file:/home/gravelld/eclipse-workspaces/bliss/com.elsten.bliss.installer/release/bliss-bundle/repository .xml -Dfile.encoding=UTF-8 -classpath /opt/eclipse-indigo/eclipse/plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar org.eclipse.equinox.launcher.Main 。所以我在那里什么都看不到。此外,这并不能解释为什么 PDE 在编译时没有捕获它。
    猜你喜欢
    • 2020-08-02
    • 2010-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-26
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    相关资源
    最近更新 更多