1

OSGIフラグメントについて誤解がありますが、

C1がC2を使用する2つのクラス「com.company.C1」と「com.company.C2」を持つバンドル「B」をデプロイしたとします。次に、ホスト バンドル「B」のフラグメント「F」をデプロイしました。ここで、F にはクラス「com.company.C2」が 1 つだけ含まれています (最初のクラスのコードを少し変更しています)。

さて、クラス「com.company.C1」が実行されている場合、「B」からと「F」から、どちらのクラス(ファイル)「com.company.C2」が使用されるでしょうか。

同じクラスローダに同じクラス C2 が 2 回存在すると、実行時エラー (同じバージョンと異なるバージョン) が発生する可能性がありますか?

4

1 に答える 1

5

OSGi Core 仕様の「3.9.4 全体的な検索順序」の章を読むと、すべてが明確になります。

つまり、バンドル内のクラスが最初にチェックされ、フラグメント バンドルよりもチェックされます。バンドルとフラグメント バンドルにクラスがある場合、フラグメント バンドルのクラスは使用されません。

于 2016-09-27T15:59:08.740 に答える