2011-07-01 9 views
2

いくつかの依存関係jarファイルを追加しようとしています。しかし、これらのファイルをlib/endorsedまたはWEB_INF/lib.jarに入れると、jbossインスタンスの起動エラーになります。 JBossのフラットなクラスローダー構造のため、これが起こっていると思います。誰かがjboss-web.xmlJBoss - Warライブラリの依存関係

<class-loading> 
     <loader-repository>com.example:archive=unique-archive-name</loader-repository> 
</class-loading> 

でクラスローダの設定を実装している場合誰かが私に実際の生活の例を与えることができますか?

私はこれらのjarファイルを置く必要があります。また

- デプロイフォルダ内または彼らはあなたのWARファイルのWEB-INF/libディレクトリに属しWEB_INF/lib

答えて

2

でのJBossのlib/endorsed、またはlibフォルダ。承認されたフォルダに物を入れないでください。を承認に瓶を入れないで

5

Duffymoのディレクティブは危険を覚悟で無視されます。いくつかの追加の詳細は

:それは自給自足と配布Webアーカイブを作成するための標準規定に準拠して、あなたのWEB-INF/libににライブラリを置く

は、移植性と一貫性のためのベストプラクティスですが、 クラスローディング宣言に細心の注意を払う必要があります。jboss-web.xmlです。

なしクラスローディング宣言と架空のexample.jar簡単なシナリオを想定:あなたはexample.jarWEB-INF/libにに配置した場合

  • をありますなしjboss // libの場合、のexample.jarは、その特定のWARでのみ表示されます。基本的に
  • あなたはlibにexample.jarでWEB-INF/を配置する場合とそれWEB-INF/libにで、のJBoss // libにでインスタンスを存在になりますWARはJBossサーバインスタンスの統合クラスローダを使用して、の例クラスをjboss // lib/example.jarからロードします。 (同じオーバーライドないクラスローディングを想定していない、同じサーバー・インスタンス内の他のWARまたは耳に適用される。)

クラスローディング宣言がどこ(など)の場合に必要ですexample.jarの2種類の異なるバージョンがあります。: - jboss // lib:example1.0。 jarファイル - WEB-INF/libが:この場合

をexample2.0.jar、JBossはのJBoss // libに/ example1.0.jar賛成を避けることができますあなたのWARのためのユニークで分離されたクラスローダを作成します。あなたのWARの文脈でWEB-INF/lib/example2.0.jarのです。要約すると

、あなただけのJBossサーバーインスタンス内の1つのWARを実行している、および/またはあなたが競合するJARの問題を持っていない場合は、クラスローディング宣言を捨てとのJBoss // libにであなたのJARを置きます。 WARファイルはより軽量になります。全体的なデプロイメントはより簡単になり、ホットデプロイ時に追加のクラスバージョンで追加のメモリを消費することはありません。有用な説明については、

+0

+1です。 – ziggy

関連する問題