0


foo.com/{game}/rules
foo.com/{game}/players
foo.com/{game}/matchesのような呼び出しを公開する Java ベースの (ジャージー + グリズリー) REST サーバーがあります 。


任意の数のゲームが存在する可能性があります
各ゲームには、ルール、プレイヤー、マッチの異なる実装が あります
歴史的な理由から、ゲームの実装ごとに個別の jar が必要です


したがって、REST サーバー
があり、foo.com/tennis/rules のような呼び出しがある場合
、REST サーバーに「tennis」jar を動的にロードさせる必要があります。瓶はその操作を行います。その後、jar をアンロードする必要があります
。次の呼び出しが foo.com/football/players に対するものであった場合、REST サーバーに「football」jar を動的にロードさせる必要があります。瓶はその操作を行います。次に、jar をアンロードする必要があります


これを行うテクニックはありますか?
どうやら [これ] に関して非常に古い質問があるようです: java: jar の動的なロードとアンロードを可能にするフレームワークはありますか (osgi は不可)?

4

2 に答える 2

0

Java 8 でどのように機能するかはわかりませんが、Java 7 でクラスをアンロードするには、クラスだけでなく、そのローダーと、このクラスが持つ可能性のある他のオブジェクトからのすべての参照もアンロードする必要があります。

それらがすべてアンロードされると、System.gc が呼び出されます。他のクラスがまだ参照を保持している場合、gc は機能しません。

OSGI (@Joop Eggen が提案) は実行可能なオプションです。JRebel ではありません。

于 2014-05-13T08:36:16.110 に答える