1

Equinox と Felix の両方で動作する Eclipse PDE を最適にサポートするには、どのような構成変更を行いますか?

これは私が現在抱えている問題の例です。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 に近い構成を強制する方法です...基本的にパッケージのロードをより厳密にするためですか?

4

3 に答える 3

1

スタンドアロンで実行すると、 EquinoxFelix のように動作すると思います。osgi.orgで述べられているように、これは Equinox のものよりも Eclipse のレガシーのものです。

私の知る限り、Eclipse からブート委譲をオーバーライドする方法はありませんが、この問題に頻繁に直面しているので、間違っていることを証明したいと思います。

于 2012-07-04T08:53:57.353 に答える
1

サーバー アプリケーションを開発している場合は、PDE をまったく使用しないことをお勧めします。バンドルを開発するために、maven と maven バンドル プラグインを使用しています。次に、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 に答える