..私はプラグイン可能なプラグインが.jarの.jarであるプラグインシステムを持つアプリケーション(a .war)を持っています依存関係。 webappでは、管理者用Webインターフェイス経由で、プラグインは.jarとその依存関係を「読み込む」ClassLoaderを使って読み込まれます。 しかし、問題は、たとえば、2つのプラグインAとBが1つ以上の共通の依存関係(commons-io.jar、commons-collection.jar、...)を持つ可能性があるということです。一度、すでに別のプラグインによってロードされている.jar、または既にWebアプリケーション自体に存在していた - > WEB-INF/lib/ 別の時刻に.jarをロードしない方法があるかどうかを知りたいwebappや別のプラグインを使用して既に読み込まれています 可能であれば、どうすればいいですか?.jarまたはクラスがJavaのClassLoaderによって既にロードされていることを確認する方法
実際、利用可能なソリューションが何であれ、私はクラスローダーの問題を回避したいだけです。
注:各プラグインは、以下のアーキテクチャは
プラグイン名/
- code/
- A.class
- B.class
- ...
- lib/
- commons-io.jar
- log4j.jar
- ....
- description.xml
- version.txt
ディレクトリコード内の各の.classファイル/クラスローダによってロードされ、その中に持っている.zipファイルでありますプラグインのlib /ディレクトリにある各.jarもロードされます。
しかし、通常、私は「コモンズ-io.jarは」今までならば、それはすでに存在していたの.jarに存在するクラスを再ロードするべきではありません...私は私は十分に明らかにされてきた期待し
、感謝事前に注意を払い、助けてください。
2つのプラグインが同じ依存関係の異なるバージョンを必要とする可能性はありますか?それとも心配しないのですか? – kylewm
はい、2つのプラグインが同じ依存関係の異なるバージョンを持つ可能性があります – paissad