5

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)

Felix や Knopflerfish などの他の OSGi コンテナーを使用しようとしましたが、同じ問題が発生しました。私が間違っていることを誰かが知っていますか。または、OSGi コンテナーのどのバージョンが IntelliJ でサポートされていますか?

4

1 に答える 1

9

Osmorc (IntelliJ OSGi プラグイン) は、IDE の OSGi 設定 (IDE 設定 -> OSGi -> フレームワーク定義) で指定したプラットフォーム名とバージョンで pax ランナー コンテキストを設定します。

名前は「platform.」+指定した名前で、バージョンは逐語的です。さまざまなプラットフォームでサポートされているバージョンは、ここに一覧表示されています。ただし、リストは最新ではありません。

ランナー 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 です。

于 2011-01-20T10:53:10.080 に答える