4.2.3. 查找 JBoss 模块依赖关系

要解决依赖关系,首先,通过查找 EAP_HOME/modules/system/layers/base/ 目录找到包含 ClassNotFoundException 指定的类的模块。如果您找到这个类的模块,您必须在 manifest 条目里添加一个依赖关系。
例如,如果您在日志里看到 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.5. 找到依赖关系

  1. 首先确定这个类是否有明显的模块。
    1. 进入 EAP_HOME/modules/system/layers/base/ 目录并查找对应 ClassNotFoundException 里命名的类的模块路径。
      找到模块路径 org/apache/commons/logging/
    2. 打开 EAP_HOME/modules/system/layers/base/org/apache/commons/logging/main/module.xml 文件并找到模块名称。在这个例子里是 "org.apache.commons.logging"。
    3. 添加模块名到 MANIFEST.MF 文件里的依赖关系:
      Manifest-Version: 1.0
      Dependencies: org.apache.commons.logging
      
  2. 如果这个类没有明显的模块路径,您可能需要在另一个位置寻找依赖关系。
    1. 在 Tattletale 报告里找到名为 ClassNotFoundException 的类。
    2. EAP_HOME/modules 目录里找到包含 JAR 的模块以及和前一步骤里相同的模块名。