tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sankaranarayanan (Ganesh) Ganapathy" <>
Subject Need help : Embedded Tomcat and classloaders
Date Thu, 16 May 2002 18:03:31 GMT
Can some experts answer this one for me? Thanx!

I want to use embedded tomcat in my application and I want to include only bootstrap.jar in
my classpath. I am wondering how to achieve this.

I wrote a class called EmbeddedTest that does what is given org.apache.catalina.startup.Embedded.
I added catalina.jar in my classpath to compile the file.
I removed catalina.jar from my classpath after that.

I wrote another class to set up classloaders and call EmbeddedTest

I set up the classloaders thus:

commonloader = ClassLoaderFactory.createClassLoader(commonclassesdirs, commonlibdirs, null);
catalinaloader = ClassLoaderFactory.createClassLoader(catalinaclassesdirs, catalinalibdirs,

Class embeddedcls = catalinaloader.loadClass("EmbeddedTest");
Method method = embeddedcls.getMethod("main", new Class[]{args.getClass()});
method.invoke(embeddedcls, new Object[]{args});

When I run this I see the error:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/catalina/L
        at java.lang.Class.getMethod0(Native Method)
        at java.lang.Class.getMethod(
        at LaunchTomcat.main(

The error goes away if I make my EmbeddedTest as part of package org.apache.catalina.startup
- which I dont to do.

And even if I made as part of the package org.apache.catalina.startup package it doesnt work
if I set up the EmbeddedTomcat to use any of my custom logger or realm implementations - essentially
if I refer to any class file outside of the catalinaloader.

Am I missing something here - how do I run the embedded tomcat with out having to include
tomcats server files in my classpath?


To unsubscribe, e-mail:   <>
For additional commands, e-mail: <>

To unsubscribe, e-mail:   <>
For additional commands, e-mail: <>

View raw message