2012-04-03 9 views
5

Websphereでは、「共有ライブラリ」を作成してアプリケーションに関連付けることができます。私はクラスパスの位置の点で、共有ライブラリの位置は何ですか?つまり、重複したリソースの場合は、ロードする優先度が高くなり、共有ライブラリやEAR/WAR自体がわかります。Websphere共有ライブラリ「優先度」?

たとえば、私のアプリケーションでは、appConfig.xmlというリソースがあり、アプリケーションサーバーにローカルディレクトリを作成し、そのディレクトリに別のappConfig.xmlを配置しています。私のアプリケーションでリソースを読み込もうとすると、どのファイルが読み込まれますか?

私はしばらくの間検索しましたが、これについては言及していません。実験で自分で試してみることはできますが、もしあれば、公式の予想される行動を知りたいでしょう。たくさん

答えて

4

クラスローダー間での順序付けは、「親の最初の」クラス(アプリケーションクラス/リソースの最後)または「親の最後」(アプリケーションクラス/リソースを先に持つ)のいずれかである、いわゆる「クラスローダーモード」を使用します。単一のアプリケーションクラスローダは、クラスパスの順序は次のようになります

  1. モジュールクラスパス
  2. 依存クラスパス(クラスパスMANIFEST.MFで)
  3. 共有ライブラリのクラスパス

注文を変更する設定オプションはありません。私は、この注文はドキュメントの明示的な状態ではないと考えていますが、変更する可能性は非常に低いとも考えています。それにもかかわらず、私はそれに頼ることをお勧めしません。クラスローダー内で一意のリソース/クラス名を使用することをお勧めします。

+2

また、WASがライブラリーをどのように使用しているのか疑問があるときは、WAS管理コンソールの「WebSphere Webコンソール - >トラブルシューティング - >クラス・ローダー・ビューアー」ビューを使用できます。 – MrJames

+1

はい、クラスローダービューアは、サーバがどのように物事を組み立てたかを判断するのに便利です。必ずしも注文の根拠を説明するものではありません。 –

+0

実際に私は前にこれを読んでいます:http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere.soafep.multiplatform.doc/info/ae/ae/ucws_rsharedlib_inst.html最後に、「この共有ライブラリに孤立したクラスローダーを使用する」という特別なセクションがあります。このセクションでは、指定した順序について説明します。これは、通常の共有ライブラリの場合、共有ライブラリに分離されたクラスローダを使用していないというヒントです。私の理解が正しいかどうか誰かが確認できますか? (もしそうでなければ、孤立したクラスローダーと通常の共有ライブラリとの違いは何ですか?) –