Karan, if you really want/need this, try to:

        A) build a.jar an place a start up servlet into it (or any class
loaded/executed when you application starts). Change Classpath entry (in
the manifest of a.jar) to include mylib/b.jar. Put a.jar under WEB/lib;
        B) build b.jar and put it under WEB/lib/mydir/b.jar. Be sure that
Classpath entry (of a.jar's manifest) includes mydir/b.jar;

        Start your app.


On Tue, 2009-06-30 at 14:13 -0300, Daniel Henrique Alves Lima wrote:
> On Tue, 2009-06-30 at 11:59 -0400, Christopher Schultz wrote:
> > -----BEGIN PGP SIGNED MESSAGE-----
> > Hash: SHA1
> > 
> > Karan,
> > 
> > On 6/30/2009 3:12 AM, k...@dossier.no wrote:
> > > Loading of jar files under WEB-INF/lib/a_foolder/*.jar wont work. On JBoss
> > > 5.0.1GA this works fine but 
> > > The tomcat class loader cant load thease files.
> > 
> > Tomcat is following the servlet specification, which does not have any
> > provisions for subdirectories within WEB-INF/lib. JBoss is operating
> > outside the servlet specification in order to support this.
> > 
> > > Thease jar files (WEB-INF/lib/a_foolder/*.jar) is referenced from the
> > > main.jar file (WEB-INF/lib/main.jar) manifest: 
> > > 
> > > WEB-INF/lib/main.jar/META-INF/MANIFEST.MF:
> > > 
> > > /WEB-INF/lib/a_folder/cxf-rt-frontend-jaxws-2.2.jar
> > > /a_folder/geronimo-ws-metadata_2.0_spec-1.1.2.jar
> > 
> > A JAR file's manifest isn't used for any class loading operations,
> > unless the JAR file is being "run" by the JVM such as "java -jar
> > [jarfile]" and the MANIFEST.MF file contains a "Class-Path" entry. The
> > contents of your MANIFEST.MF file are not relevant.
> 
>       
> I remember Weblogic allowed this CLASSPATH manifest nightmare, but i
> don't recommend it because:
> 
> 1. Even when using WL, only some classloaders (EAR classloader ?)  seems
> to work with this (WAR classloader do not);
> 
> 2. If you write the wrong path, there will be no warning/error message
> and you just discover the problem when you (or your container/app
> server) try to load some classes/resources from that jar;
> 
> 3. I never knew relative to what this entries in manifest file are. I
> think that the path was relative to EAR structure, but (if i'm not
> wrong :-)) CLASSPATH manifest entries are relative to the path of the
> jar that include them. 
> If you declare (in the manifest file of dir_one/a.jar) 'dir_two/b.jar',
> the classloader will try to load dir_two/b.jar FROM dir_one. I think
> that it will try to load dir_one/dir_two/b.jar because a.jar is IN
> dir_one.
> 



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to