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]>