我有多个Web应用程序,每个Web应用程序都使用spring-hibernate和其他开放源代码库和portlet,因此基本上每个war文件都包括那些jar文件.我如何将这些罐子移到一个公共位置,这样我就不必将它们放在每个战争文件中了?我的罐子放在D:/目录中.
我尝试创建模块,但没有成功.例如如果我加了罐子
<resources>
<resource-root path="mylib.jar"/>
</resources>
而mylib.jar需要另一个ABC类.该ABC班级在我的WAR班级路径中.在这里加载模块时出现异常. mylib.jar找不到ABC类,并引发异常.
解决方法:
如果这些库可以在多个应用程序中重用,则最好的解决方案可能是创建JBoss模块.
例如,我正在开发的多个项目中都使用了OJDBC库.因此,我在JBoss 7:https://community.jboss.org/wiki/CreateAModuleForOracleDatasourceInJBoss711Final中添加了一个新模块(这只是一个示例).
但是您说过,您尝试创建模块,但是没有运气.怎么了遇到错误了吗?
编辑
与更新的问题有关的答案已更新.
因此,如果我理解正确,我们可以将您的库分为两类:
>第一类是“标准库”:Spring,Hibernate,Log4j等.因此,这些库可以作为模块添加到JBoss AS中,并可以在每个WAR中重用(scope =在Maven的依赖项中提供).
>任何其他非标准库(即由您自己编写的库)也可以作为模块添加.如果这些库需要其他一些依赖关系,则这些依赖关系必须在模块的XML文件中列出,如以下内容所述:https://docs.jboss.org/author/display/MODULES/Module+descriptors
希望这至少可以有所帮助:)