Our ear used to only have a war component. Now we are using ejb so we need to add ejb jars to the ear. The ejb has dependencies on some of the jars under war. When I invoke the ejb, I got classnotfound error. Appearantly, the ejb cannot see the war. I though both ejb and war use the same classloader, are they? For the ear, we have a scoped loader repository defined in side jboss-app.xml. However, both ejb and war are inside the same ear.
I googled searched and tried to add Class-Path: in the Manifest.mf of the war, and move those depended jars to a shared library under ear but outside war. But it does not seem working. I ended up move all the jars from the war to the shared library. Then it works. But I don't think this is good idea as some of these wars are really presentation tier classes, such as Struts.
I am using 4.0.3SP1 and using the default org.jboss.deployment.DeploymentSorter
So I guess the jars are loaded first than the war? Are they using the same MainDeployer?
Put the jars needed by ejb.jar and web.war into the root of the ear and put an entry in application.xml:
<module> <java>common.jar</java> </module>