0

私はこの答えを知りたいと思っています。3つのjar A、B、およびCがあるような問題があります.jar Aはjar Cのバージョン1.1をインポートする必要があり、jar Bはjar Cのバージョン1.5をインポートする必要があります.

したがって、私の理解によると、これらのjarファイルはすべて個別のクラスローダーによってロードされるようです。そのため、OSGi が特定の jar を使用して異なるバージョンのシナリオを処理する方法をロードした後。

4

1 に答える 1

1

このシナリオでは、A、B、C-1.1およびC-1.5の4つのバンドルが展開されている必要があります。

  • Aは(独自のクラスローダーを使用して)解決され、バンドルC-1.1から依存クラスをロードします。

  • Bは(独自のクラスローダーを使用して)解決され、バンドルC-1.5から依存クラスをロードします。

これにより、両方のバージョンのCを同じアプリケーションで使用できるようになります。これは、同じクラスローダーによってロードされないため、同じ名前のクラスとの競合が発生しないためです。

于 2012-05-02T13:36:31.413 に答える