Now I can load jars which is under the EAR/lib. But I want to put the jars to a common path, for other application to use. I found that jboss-deployment-structure.xml file's tag can do this. But it doesn't work. I got the ClassNotFound exception. I don't know why?
<deployment>
<resources>
<resource-root path="/common/test.jar" />
</resources>
</deployment>
One way of using global libraries in different applications can be reached by making them available as modules. Therefor, extend the modules by the library you are providing as a server provider.
Example: To make your
test.jar
available to all applications, create a folder with the modules name and amain
subdirectory (e.g.modules/commons/test/main
).Place your library there and a module description file with the name
module.xml
. Example content:Now the library is available to all applications. To get access to the module, your application has to define the dependency in the manifest.
Applications MANIFEST.MF:
This can be also done by maven during build time. Check https://docs.jboss.org/author/display/AS7/Class+Loading+in+AS7 for details
Please note that you're modifying the server itself. All applications using your module are depending on it. A application with a dependency to the module
commons.test
wont be deployed on a server which does not have this module provided.