2017-02-17 2 views
4

私は理解したかった親の最後アプリケーションのJBossアプリケーションサーバーに読み込んでいます。 JBoss 4.2.1 GAにはレガシーアプリケーションが導入されています。私たちは親の最後の読み込みを試みています。JBoss ClassLoading親 - 最後のロード

これは、このlinkを参照しています。 私は親の最後の読み込みを学びたかったのです。だから、maven-jar-pluginと設定 - > addDefaultImplementationEntries = trueの単純なmaven jarパッケージアプリケーションを作成しました。私は2つのjarバージョン1.0.0と1.0.1を同じJAR作成Mavenアプリケーションから作成しました。 jarには、単一クラスのTestClassと、クラスがロードされたjarのバージョンを返す単純なString戻りメソッドがあります。 私はjava2ClassLoadingComplianceの使用を体験したかったです。私はserver/deploy/MyApplication/WEB-INF/libにバージョン1.0.0 jarをパッケージ化しました(私のWebアプリケーションはクラスのメソッドを呼び出す単純なサーブレットアプリケーションなので、 。)とserver/libのバージョン1.0.1のjar。

は:論理的には、アプリケーションのJARの古いバージョンを使用して、サーバーのlibに新しいバージョンが存在し、それを上書きしても意味がありませんが、ちょうどクラスのロードを体験したかったです。

私は、META-INFフォルダ内の任意のjboss-web.xmlのがなければ、次の

  1. を試してみました。
  2. 私は、META-INFにjboss-we.xmlを紹介し、java2ClassLoadingCompliance = falseでこれをやってみました。
  3. java2ClassLoadingCompliance = trueの場合。

アプリケーションlibからのすべての時間クラスは、アプリケーションによってロードされます。

私のjboss-web.xmlがreference

<jboss-web> 
    <class-loading java2ClassLoadingCompliance="true"> 
     <loader-repository> 
     com.example:archive=JBossClassLoadingTestServlet-0.0.1-SNAPSHOT.ear 
     <loader-repository-config>java2ParentDelegation=true</loader-repository-config> 
     </loader-repository> 
    </class-loading> 
</jboss-web> 

のように見える誰かは、JBossに親の最後の構成を理解する私を助けることができますか?私がここでやっている間違いは、アプリケーションlibのクラスが常にロードされることです。

+0

ああ神のJBoss 4.2は、あなたと何が間違っているのですか? :-o – Aaron

答えて

0

あなたのリンクはあなたの実験とはあまり関係ないと思います。これは、マルチモジュール展開が存在し、複数のバージョンのlibを分離する必要のあるEAR展開に関して、より関連性があります。

あなたの場合、1つのJarでlibをオーバーライドするだけです。

以下は、アプリケーションクラスローダがそのよう WAR内にパッケージのクラスおよびリソースが容器全体に存在する クラスおよびリソースに優先してロードされていることを実現することも推奨されるServlet Spec:

からですライブラリJAR

したがって、JBossは仕様に従い、常にアプリケーションlibをロードします。

私は、このような古いバージョンのドキュメントを見つけられませんでしたが、それは AS7と同様のはず

最優先のためには最も低い優先度に

  1. システムの依存関係 - 追加されたこれらは依存関係Java EE APIを含むコンテナによって自動的にモジュールに追加されます。
  2. ユーザーの依存関係 - これは、JBoss-deployment-structure.xmlまたは依存関係:マニフェストエントリを通じて追加された依存関係です。
  3. ローカルリソース - クラスファイルは、デプロイメント自体の内部にパッケージ化されています。戦争のWEB-INF/classesまたはWEB-INF/libからのクラスファイル。
  4. デプロイ間の依存関係 - これは、耳の配置における他のデプロイメントへの依存関係です。これには、earのlibディレクトリのクラス、または他のEJB jarで定義されたクラスを含めることができます。

関連:

関連する問題