Menu Close

4.2.3. JBoss モジュール依存関係の検索

依存関係を解決するには、最初に EAP_HOME/modules/ ディレクトリ内で ClassNotFoundException によって指定されたクラスが含まれるモジュールを探します。クラスのモジュールを見つけた場合は、マニフェストエントリーへの依存関係を追加する必要があります。
例えば、ログに次の ClassNotFoundException トレースが記録されているとします。
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.Log 
    from [Module "deployment.TopicIndex.war:main" from Service Module Loader]
    at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:188)
この場合、次を実行してこのクラスが含まれる JBoss モジュールを探します。

手順4.9

  1. 最初にクラスの明白なモジュールがあるかを判断します。
    1. EAP_HOME/modules/ ディレクトリへ移動し、ClassNotFoundException で名前付けされたクラスと一致するモジュールパスを探します。
      この例では、モジュール下に org/apache/commons/logging/ のモジュールパスがあります。
    2. EAP_HOME/modules/org/apache/commons/logging/main/module.xml ファイルを開き、モジュール名を探します。この例では org.apache.commons.logging になります。
    3. MANIFEST.MF ファイルの Dependencies にモジュール名を追加します。
      Manifest-Version: 1.0
      Dependencies: org.apache.commons.logging
      
  2. クラスの明白なモジュールパスがない場合、依存関係を他の場所で探す必要があることがあります。
    1. Tattletale レポートで ClassNotFoundException によって名前付けされたクラスを探します。
    2. EAP_HOME/modules ディレクトリで JAR が含まれているモジュールを探し、前の手順の通りにモジュール名を探します。