在JBoss AS 7中放置共享库的位置

时间:2013-10-22 13:07:18

标签: java spring-mvc jboss shared-libraries

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

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

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

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

1 个答案:

答案 0 :(得分:3)

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

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

但你说,你试过创建模块,但没有运气。出了什么问题?你有错误吗?

EDIT 答案已更新,与更新的问题有关。

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

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