0

A と B という 2 つのバンドルがあります。A は B に依存します (A のマニフェストで Required-Bundle:B として指定されています)。

ここで、A と B の両方のバンドルを 1 つずつインストールしました (BundleContext.installBundle を呼び出して)。次に、バンドル A を開始しようとすると、次のエラーが発生します

org.osgi.framework.BundleException: Could not resolve module: A [140]
  Unresolved requirement: Require-Bundle: B; bundle-version="1.0.0"

例外から、バンドル B がまだ開始 (解決) されていないことがわかりました。では、この問題を解決するにはどうすればよいでしょうか。

この問題を解決する唯一の方法は、バンドルを依存関係でソートすることですか? または、OSGi ランタイムにフォルダーを指定して、そこにコピーされたバンドル ファイルがアクティブになるようなオプションはありますか?

ちなみに私はEquinoxを使っています。

4

1 に答える 1