1

JBoss AS7開発者ガイドでは、優先度の高いものから低いものへの次のクラスローディング設定について説明しています。

1. System Dependencies - These are dependencies that are added to the module automatically by the container, including the Java EE api's.
2. User Dependencies - These are dependencies that are added through jboss-deployment-structure.xml or through the Dependencies: manifest entry.
3. Local Resource - Class files packaged up inside the deployment itself, e.g. class files from WEB-INF/classes or WEB-INF/lib of a war.
4. Inter deployment dependencies - These are dependencies on other deployments in an ear deployment. This can include classes in an ear's lib directory, or classes defined in other ejb jars. 

しかし、私は#2と#3の違いを理解していません。上記のカテゴリ2とカテゴリ3に分類できる依存関係の種類は、私には同じように見えます。

SpringアプリケーションをJBoss4からJBoss7に移行する例として、アプリケーションが使用していたクォーツ1.6jarのNoClassDefErrorが発生しました。クォーツ1.6jarは、私のアプリケーションのWEB-INF/libフォルダー内にあります。これは、上記のカテゴリ3に正しく該当することを意味します。しかし、Web上のほとんどの記事では、JBoss 7モジュールとして配置するか、jboss-deployment-structure.xmlで定義する必要があると示されています。なぜ ???

また、移行ガイドラインを読み、それらのガイドラインで指摘されているようにTattleTaleの演習を行いました。しかし、私がレポートをどうするかについては、よくわかりませんか?JBoss AS7スタンドアロンデプロイメントにサードパーティのJARをロードするためのこのベストプラクティスへの回答を読みましたか?-移行にはかなりの労力が必要になるようです。アプリケーションが簡単に持つことができる多数の依存関係を考えると、簡単な作業のようには思えません。誰かがこれを確認できますか?

ガイドラインが必要だと思います

  1. どのjarに対してmodule.xmlを作成しますか?(可能な候補-Spring、Quartz、Apache、C3P0接続プールなど)???

  2. jboss-deployment-structure.xmlはどのjarにありますか?(ここで良い候補は何でしょうか?)

  3. どのjarファイルをweb-inf/libフォルダーに残しますか?(アプリケーションは、colt.jarなどの特定の特殊な数学ライブラリを使用します。jxls.jar、poi.jarなどの優れたグラフライブラリを使用します。これらはここでは適切な候補のようです)。

4

1 に答える 1

0

JBoss AS リリースは、ライブラリのセットをさまざまな方法で管理していました。以前は、コア サーバー ライブラリを JBOSS_HOME/server ライブラリに定義するためにリリース 4.x が使用されていました。その後、各サーバー定義の特定のライブラリーが server//lib フォルダーに配置されました。

JBoss AS 7 は、以前のすべてのアプローチを廃止する真のモジュラー アプローチに従います。サーバーのブートストラップ ライブラリは、アプリケーション サーバーのルートに置かれるようになりました。そこに jboss-modules.jar アーカイブがあります。これは、JBoss モジュールに基づいて、新しいアプリケーション サーバー カーネルをブートストラップするために必要なすべてです。

module.xml を作成するのはどの jar ファイルですか? (可能な候補 - Spring、Quartz、Apache、C3P0 接続プールなど) ???

依存関係の jar がある場合は、それらをモジュールとして作成し、module.xml で定義できます。また、定義ライブラリの依存関係を定義する必要があります。

元。

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="rezg.rezg-dto">
    <dependencies>
        <module name="org.apache.log4j" />
    </dependencies>
   <resources>
       <resource-root path="rezg-dto-1.0.0.jar"/>
   </resources>
</module>

接続プールはモジュールとして構成できます。新しいモジュールをインストールする手順では、適切なモジュール パスに .jar ライブラリをコピーし、モジュールとその依存関係を宣言する module.xml ファイルを追加する必要があります。

jboss-deployment-structure.xml はどの jar に対応していますか? (ここで良い候補は何ですか?)

すべての依存関係の jar は、ここで定義する必要があります。また、MANIFEST.MF または standalone.xml で定義することもできます。

どの jar ファイルを web-inf/lib フォルダーに残しますか? (アプリケーションは、特定の特殊な数学ライブラリ (colt.jar、jxls.jar、poi.jar などの Excel グラフ作成ライブラリなど) を使用します。これらは、ここでは適切な候補のようです)。

ear または war でのみ使用される jar がある場合、それらは WEB-INF/lib で定義できます。ただし、モジュールとして使用することをお勧めします。

于 2013-02-12T11:31:15.657 に答える