现在我可以加载EAR / lib下的jar。 但是我想把罐子放到一个共同的路径上,供其他应用程序使用。 我发现jboss-deployment-structure.xml文件的标签可以做到这一点。 但它不起作用。我得到了ClassNotFound异常。 我不知道为什么?
<deployment>
<resources>
<resource-root path="/common/test.jar" />
</resources>
</deployment>
答案 0 :(得分:11)
通过将全局库作为模块提供,可以实现在不同应用程序中使用全局库的一种方法。 因此,通过您作为服务器提供商提供的库扩展模块。
示例:
要使test.jar
可供所有应用程序使用,请创建一个包含模块名称和main
子目录的文件夹(例如modules/commons/test/main
)。
将您的库放在那里以及名为module.xml
的模块描述文件。
示例内容:
<module xmlns="urn:jboss:module:1.0" name="commons.test">
<resources>
<resource-root path="test.jar"/>
</resources>
</module>
现在,该库可供所有应用程序使用。 要访问该模块,您的应用程序必须在清单中定义依赖项。
应用程序 MANIFEST.MF :
Dependencies: commons.test
这也可以在构建期间由maven完成。 查看https://docs.jboss.org/author/display/AS7/Class+Loading+in+AS7了解详情
请注意,您正在修改服务器本身。使用您的模块的所有应用程序都依赖于它。具有模块commons.test
依赖性的应用程序将不会部署在未提供此模块的服务器上。