如何在JBoss 7上使用外部jar?

zha*_*lan 5 jboss7.x

现在我可以加载EAR/lib下的jar.但是我想把罐子放到一个共同的路径上,供其他应用程序使用.我发现jboss-deployment-structure.xml文件的标签可以做到这一点.但它不起作用.我得到了ClassNotFound异常.我不知道为什么?

<deployment>
   <resources>
        <resource-root path="/common/test.jar" />
   </resources>
 </deployment>
Run Code Online (Sandbox Code Playgroud)

小智 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>
Run Code Online (Sandbox Code Playgroud)

现在,该库可供所有应用程序使用.要访问该模块,您的应用程序必须在清单中定义依赖项.

应用程序MANIFEST.MF:


Dependencies: commons.test
Run Code Online (Sandbox Code Playgroud)

这也可以在构建期间由maven完成.查看https://docs.jboss.org/author/display/AS7/Class+Loading+in+AS7了解详情

请注意,您正在修改服务器本身.使用您的模块的所有应用程序都依赖于它.具有模块依赖性的应用程序将commons.test不会部署在未​​提供此模块的服务器上.