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

Reply via email to