4

我有多个 Web 应用程序,每个应用程序都使用spring-hibernate其他开源库和 portlet,所以现在基本上每个 war 文件都包含这些 jar 文件。如何将这些 jar 移动到一个公共位置,这样我就不必将它们放在每个 war 文件中?我的罐子是D:/目录中的地方。

我尝试创建模块但没有成功。例如,如果我添加了 jar

<resources>
    <resource-root path="mylib.jar"/>
</resources>

mylib.jar 需要另一个 ABC 类。那个 ABC 类在我的 WAR 类路径中。在这里加载此模块时出现异常。mylib.jar 找不到 ABC 类并引发异常。

4

1 回答 1

4

如果这些库在多个应用程序中重复使用,最好的解决方案可能是创建 JBoss 模块。

例如,我正在开发的几个项目中使用了 OJDBC 库。因此,我在 JBoss 7 中添加了一个新模块:https ://community.jboss.org/wiki/CreateAModuleForOracleDatasourceInJBoss711Final (这只是一个示例)。

但是您说,您尝试创建模块,但没有运气。出了什么问题?你有没有得到一些错误?

编辑与更新问题相关的更新答案。

因此,如果我理解正确,我们可以将您的库分为两类:

  1. 第一类是“标准库”:Spring、Hibernate、Log4j 等。因此,这些库可以作为模块添加到 JBoss AS 中并在每个 WAR 中重用(范围=在 Maven 的依赖项中提供)。
  2. 任何其他非标准库(即您自己编写的)也可以作为模块添加。如果这些库需要一些其他依赖项 - 这些依赖项必须列在模块的 XML 文件中,如下所述:https ://docs.jboss.org/author/display/MODULES/Module+descriptors

希望这至少有一点帮助:)

于 2013-10-22T13:22:34.950 回答