You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by Sriram N <sr...@yahoo.com> on 2001/11/29 14:13:02 UTC

ClassNotFound Exception when loading Tomcat 4.0.1 via URLClassLoader

Hi all,

I'm trying to write a java class that will load Tomcat 4.0.1 for me.
My goal is:
	-> Do not use the classpath. The CLASSPATH env variable's contents are clear
be me first.
	-> Use the URLClassLoader to get started.

This technique works with Tomcat 3.3

With Tomcat 4.0.1 however, I get a ClassNotFoundException for
org.apache.catalina.loader.Reloader which is in the same bootstrap.jar that is
used to load 
org.apache.catalina.startup.Bootstrap

However, when I stick to the batch file which adds bootstrap.jar to the system
CLASSPATH, tomcat runs OK, as usual.

Could some one point me to what I'm missing or doing wrong ? Thanks.

Here's the code that I use to load Tomcat 4.0.1

------ begin code --------
public class TCStart{
	public static void main(String args[]){
		try{
			System.setProperty("catalina.home","f:/tc4.0.1/");
			System.setProperty("catalina.base","f:/tc4.0.1/");
			System.setProperty("java.class.path","");

			java.io.File file = new java.io.File("f:/tc4.0.1/bin/bootstrap.jar");
			java.net.URL[] urls = new java.net.URL[]{file.toURL()};
			java.net.URLClassLoader loader = new java.net.URLClassLoader(urls);
			Class aClass = loader.loadClass("org.apache.catalina.startup.Bootstrap");
			String classLoaderName = aClass.getClassLoader().getClass().getName();
			String className = aClass.getName();
			System.out.println("ClassName " + className);
			System.out.println("ClassLoader " + classLoaderName);
			//Class aClass = Class.forName("org.apache.catalina.startup.Bootstrap");
			java.lang.reflect.Method method = null;
			Class[] argsClass = new Class[] { String[].class };
			// get the main method for the org.apache.tomcat.shell.Startup class
			method = aClass.getMethod("main", argsClass);
			Object object = null;
			String filePath= "-f conf/server.xml";
			Object[] arguments = new Object[] { new String[] {"start"}};
			// now invoke the main method for the org.apache.tomcat.shell.Startup class
			method.invoke(object, arguments);
		}catch(Exception ex){
			System.err.println("Ugh ! is all that I can say");
			ex.printStackTrace(System.err);
		}
	}
}


------ end code -----------

And here's the stack Trace that I get.

---- begin stack trace dump ---
ClassName org.apache.catalina.startup.Bootstrap
ClassLoader java.net.URLClassLoader
Starting service Tomcat-Standalone
Apache Tomcat/4.0.1
Exception during startup processing
java.lang.reflect.InvocationTargetException: java.lang.NoClassDefFoundError:
org
/apache/catalina/loader/Reloader
        at java.lang.ClassLoader.defineClass0(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at
org.apache.catalina.loader.StandardClassLoader.findClass(StandardClas
sLoader.java:671)
        at
org.apache.catalina.loader.StandardClassLoader.loadClass(StandardClas
sLoader.java:1090)
        at
org.apache.catalina.loader.StandardClassLoader.loadClass(StandardClas
sLoader.java:989)
        at java.lang.ClassLoader.loadClassInternal(Unknown Source)
        at
org.apache.catalina.core.StandardContext.start(StandardContext.java:3
313)
        at
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1123)

        at org.apache.catalina.core.StandardHost.start(StandardHost.java:612)
        at
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1123)

        at
org.apache.catalina.core.StandardEngine.start(StandardEngine.java:307
)
        at
org.apache.catalina.core.StandardService.start(StandardService.java:3
88)
        at
org.apache.catalina.core.StandardServer.start(StandardServer.java:505
)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:776)
        at org.apache.catalina.startup.Catalina.execute(Catalina.java:681)
        at org.apache.catalina.startup.Catalina.process(Catalina.java:179)
        at java.lang.reflect.Method.invoke(Native Method)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:243)
        at java.lang.reflect.Method.invoke(Native Method)
        at TCStart.main(TCStart.java:25)

---- end stack trace dump --------



__________________________________________________
Do You Yahoo!?
Yahoo! GeoCities - quick and easy web site hosting, just $8.95/month.
http://geocities.yahoo.com/ps/info1

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>