geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mario Ruebsam <>
Subject Re: Self-contained EAR
Date Fri, 07 Jul 2006 08:06:28 GMT
Hi Guillaume,

it's a known issue, maybe theres a patch in the near future.


Guillaume Bilodeau wrote:
> Hi all,
> I gotta say I'm dumbfounded by how class loading with EARs works in Geronimo, although
it is my first time dealing with that kind of issue (deploying a WAR to Tomcat is much simpler).
> According to this URL ( :
> "If the EJB JAR file is included in an application EAR, then Geronimo will respect Class-Path
entries in the META-INF/MANIFEST.MF file of the EJB JAR. Any JARs referenced there should
also be packaged within the EAR, and paths to JAR files will be resolved relative to the position
of the EJB JAR file in the EAR. If the EJB JAR file is not included in an EAR, then manifest
class path entries will be ignored. In either case, external libraries can also be placed
in the Geronimo server repository and referenced with dependency elements in the Geronimo
deployment plan (see Section 12.3.1, Customizing the Class Path)."
> My EAR contains an EJB JAR which includes a META-INF/MANIFEST.MF file, which does include
the libraries that should be in the classpath.  However, those libraries are not found at
runtime.  Here is my EAR's structure:
> promo-ear.ear
> + commons-*.jar
> + spring-*.jar
> + other-libraries.jar
> + promo-server.jar
>   + all-classes.class (including some EJB implementations - not interfaces)
>   + META-INF
>     + ejb-jar.xml
>     + MANIFEST.MF (containing a Class-path entry with references to libraries in the
EAR, such as spring-*.jar without any path)
> + promo-api.jar
>   + all-ejb-interfaces.class (not implementations)
>   + META-INF
>     + MANIFEST.MF (with no Class-path entry)
> + promo-web.war
>   + all web content (JSP, CSS, JS, etc.)
>   + WEB-INF
>     + web.xml
>   + application.xml
> Somehow the Spring library is not visible since I get the following message:
> java.lang.ClassNotFoundException:
in classloader default/promo-ear-2.0.0-snapshot_promo-web-2.0.0-SNAPSHOT.war/1152257080360/car
> Surely there must be a way to have a self-contained EAR, which can reference its own
libraries.  How can this be done?
> Thanks a lot,
> GB

View raw message