UPDATE: By adding all my jars in WEB-INF/lib to my launch command classpath, I can get the embedded server to run, but this does not seem correct as then what would be the point of WEB-INF/lib?
----------------------------------- I've been unable to find any decent documentation on how to use Embedded Tomcat so I've been winging it. The issue I'm having is that from what I've gleaned from the web all I *should* need in my classpath for my main method is my main class, tomcat-embed-core.jar, tomcat-embed-logging.juli.jar, tomcat-embed-jasper.jar, and ecj.jar but I'm finding that when trying to launch my main from the command line I keep having to append more and more jars from WEB-INF/lib to my classpath to get it to continue to try and start up because it keeps spitting out NoClassDefFoundErrors. I was under the impression that it would use WEB-INF/lib for the web app's classpath but this is not what's happening. The syntax used below was used from http://people.apache.org/~markt/presentations/2010-11-04-Embedding-Tomcat.pdf, see the section for running a web application. Here's my main: public static void main(String[] args) throws LifecycleException, InterruptedException, ServletException { Tomcat tomcat = new Tomcat(); tomcat.setPort(9090); File docBase = new File("/usr/local/foo/foo-ui"); tomcat.addWebapp(null, "", docBase.getAbsolutePath()); tomcat.start(); tomcat.getServer().await(); } and here's my launch command: user@host: /usr/local/foo/foo-ui $ java -cp WEB-INF/classes:WEB-INF/lib/tomcat-embed-core-7.0.27.jar:WEB-INF/lib/tomcat-juli-7.0.27.jar:WEB-INF/lib/tomcat-embed-jasper-7.0.27.jar:WEB-INF/lib/ecj-3.7.1.jar com.foo.WebAppMain Anyone have any ideas what I'm doing wrong? Thanks. --adam http://gordonizer.com