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