<module>entry in the META-INF/application.xml. So if its not specified in this file, JBoss is blind to it during runtime.
<java>lib/jarfile.jar</java>
</module>
The other issue is the embedded Tomcat cannot see out to the enclosing ear file to retrieve classes until you change a setting in JBoss. You must set the UseJbossWebLoader property to true in deploy/jbossweb-tomcat5.5/META-INF/jboss-service.xml. Once you do this, all the jars that you've specified in your application.xml are visible to the underlying war file.
We had a properties file that existed in WEB-INF/classes/app.properties Using the JbossWebLoader=true, this file was not visible to the class loader. Moving the file to WEB-INF/classes/resources/app.properties, made the file visible and the calling application, in this case a jsf change was made to
There also exists the possibilty of using JbossWebLoader=false, then creating a META-INF/MANIFEST.MF entry for Class-Path: in the war archive.
Class-Path: jarfile.jarThis entry will explictly tell the web archive exactlly what jars it needs on its classpath from the upper level ear archive.
To study more about jboss classloading, visit http://wiki.jboss.org/wiki/ClassLoading
The link to the JBoss Wiki is now:
ReplyDeletehttp://community.jboss.org/wiki/ClassLoadingOverview