Hello all, I'm trying to write a Swing based UI that'll help manage Tomcat. Towards that end, I'm first trying to load Tomcat via a URLCLassLoader. This is so that one can load and test different Tomcat releases, and builds, and jar combinations.
My idea is to load Tomcat via a URLCLassloader. This thing works for Tomcat 3.3, but I'm facing the following problem with Tomcat 4.0.1 Any ideas ? Thanks, Sriram ------- Start of forwarded message ------- From: Sriram N <[EMAIL PROTECTED]> To: Tomcat Developers List <[EMAIL PROTECTED]> Reply-To: "Tomcat Developers List" <[EMAIL PROTECTED]> Subject: ClassNotFound Exception when loading Tomcat 4.0.1 via URLClassLoader Date: 29/11/2001 6:43:02 PM 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: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]> -------- End of forwarded message -------- _________________________________________________________ Do You Yahoo!? Get your free @yahoo.com address at http://mail.yahoo.com -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>