Access to components within applications and modules installed on the server occurs within the context of isolated class loader universes, each of which has its own Applib and Archive class loaders.
Application Universe – Each Java EE application has its own class loader universe, which loads the classes in all the modules in the application.
Individually Deployed Module Universe – Each individually deployed EJB JAR or web WAR has its own class loader universe, which loads the classes in the module.
A resource such as a file that is accessed by a servlet, JSP, or EJB component must be in one of the following locations:
A directory pointed to by the Libraries field or ----libraries option used during deployment
A directory pointed to by the library-directory element in the application.xml deployment descriptor
A directory pointed to by the application or module’s classpath; for example, a web module’s classpath includes these directories:
module-name/WEB-INF/classes module-name/WEB-INF/lib