OSGi フレームワークを調べた後、サンプル Web アプリケーションを開発しました。Web アプリケーション バンドル (.war または .jar) は、eba 内にパッケージ化されています。war ファイルには、そのディレクトリに多数の埋め込み jar ファイルが含まれています。これらの jar は、jar 間の関係に従って、必要なエクスポートおよびインポート パッケージとともにWEB-INF/lib
OSGi バンドルに変換されています。ここで、bundle-classpath で(using maven-bundle-plugin
これらすべての jar について言及する必要さえあります。(WEB-INF/lib)
上記が機能するのは、バンドル (wab もバンドル) に 1 つ以上の jar ファイルを含めることができ、Bundle-Classpath manifest.mf エントリを使用してそれらを指すことができるためです。
bundle-classpath に jar を含めない場合は、ClassNotFoundException
.
問題は、jar を osgi バンドルに変換しても意味がないということです。明らかに、すべての jarWEB-INF/lib
は同じクラス ローダー (つまり、wab のクラス ローダー) によってロードされます。バンドルクラスローダーの概念ごと?