On Jun 8, 2007, at 4:25 AM, Alex Korostov wrote:


I'm using Geronimo 1.1 and 1.1.1 with Tomcat.

I have a EAR that includes JARs and a WAR. This application works fine.

Also I have another (second) WAR application that is NOT included in that EAR, but have to use some classes from the JARs and a WAR resided in the
EAR.
I declared dependency on this EAR module in the geronimo-web.xml of the second WAR. However I got the NoClassDefFoundError exceptions when trying to
use the classes from EAR's JARs or WAR.
It looks like that by default, if I create a dependency on EAR I still do
not have the EAR's classes in the classpath.

Note, that if I have two WARs (not inside EARs), the same dependency between
WARs works well. Even classes from the JARs located in the WEB-INF/lib
folder are accessible for the second WAR.

Since this works I think that you have successfully figured out to depend on the deployed module "car" file rather than the undeployed war/ear/whatever file.


What should I do to get the same approach work if I need use classes from
EAR?

In an ear, we set up one classloader for all the rar and ejb jar modules, together with their manifest classpath (I'll call this the ear classloader), and one classloader for each war file. If you have a dependency on the ear module you just get the classes in the ear classloader. I don't think it's possible to have a dependency on one of the internal war classloaders. So I think your options are:

- use 2.0-M6 and put all the classes you need in jars in a lib directory inside the ear - use 1.1.1 and add a fake ejb jar that has a deployment descriptor but no ejbs. Either put the classes you need externally in this jar or reference the jars in the manifest classpath.

You could also open a jira requesting the ability to depend on wars inside ears.

thanks
david jencks


--
View this message in context: http://www.nabble.com/Problems-in- configuring-dependency-on-EAR-tf3889208s134.html#a11024722 Sent from the Apache Geronimo - Users mailing list archive at Nabble.com.


Reply via email to