I am trying to start up tomcat through my java application at run time. The test
class(EmbeddedTomcat.java) is as follows. The line marked with red color throws
exception.
The exception is:
java.lang.ExceptionInInitializerError: java.lang.NullPointerException
at
org.apache.catalina.startup.ContextConfig.createTldDigester(ContextConfig.java:481)
at org.apache.catalina.startup.ContextConfig.<clinit>(ContextConfig.java:183)
at org.apache.catalina.startup.Embedded.createContext(Embedded.java:594)
at com.bdna.pl.testing.EmbeddedTomcat.startTomcat(EmbeddedTomcat.java:59)
at com.bdna.pl.testing.EmbeddedTomcat.main(EmbeddedTomcat.java:142)
Contents of EmbeddedTomcat.java
import java.net.URL;
import org.apache.catalina.Connector;
import org.apache.catalina.Context;
import org.apache.catalina.Deployer;
import org.apache.catalina.Engine;
import org.apache.catalina.Host;
import org.apache.catalina.logger.SystemOutLogger;
import org.apache.catalina.startup.Embedded;
import org.apache.catalina.Container;
public class EmbeddedTomcat {
private String path = null;
private Embedded embedded = null;
private org.apache.catalina.Host host = null;
public EmbeddedTomcat() {
}
/**
* Basic Accessor setting the value of the context path
*
* @param path - the path
*/
public void setPath(String path) {
this.path = path;
}
/**
* Basic Accessor returning the value of the context path
*
* @return - the context path
*/
public String getPath() {
return path;
}
/**
* This method Starts the Tomcat server.
*/
public void startTomcat() throws Exception {
Engine engine = null;
// Set the home directory
System.setProperty("catalina.home", getPath());
// Create an embedded server
embedded = new Embedded();
// print all log statments to standard error
embedded.setDebug(0);
embedded.setLogger(new SystemOutLogger());
// Create an engine
engine = embedded.createEngine();
engine.setDefaultHost("localhost");
// Create a default virtual host
host = embedded.createHost("localhost", getPath()
+ "/webapps");
engine.addChild(host);
// Create the ROOT context
Context context = embedded.createContext("",
getPath() + "/webapps/ROOT");
host.addChild(context);
// Install the assembled container hierarchy
embedded.addEngine(engine);
// Assemble and install a default HTTP connector
Connector connector =
embedded.createConnector(null, 8080, false);
embedded.addConnector(connector);
// Start the embedded server
embedded.start();
}
/**
* This method Stops the Tomcat server.
*/
public void stopTomcat() throws Exception {
// Stop the embedded server
embedded.stop();
}
public static void main(String args[]) {
try {
EmbeddedTomcat tomcat = new EmbeddedTomcat();
tomcat.setPath("C:\\tomcat\\jakarta-tomcat-4.1.12");
tomcat.startTomcat();
}
catch( Exception e ) {
e.printStackTrace();
}
}
}
what am i doing wrong?
thanks
abhijat
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>