title: How does Jetty compile JSPs?
body: <p>I am working with a legacy project which includes jetty-6.1.9.jar, jsp-2.1.jar, jsp-api-2.1.jar, servlet-api-2.5-6.1.9.jar and is run under JRE 1.7.0_03. </p>
  
  <p>Jetty server is started inside MyServer.java's main method. It creates a WebAppContext and calls WebAppContext.setWar($webAppRoot) where $webAppRoot is a full path to a directory under which is the usual WEB-INF structure. </p>
  
  <p>All of the app classes and dependent JARs are specified on the classpath which invokes MyServer.main, there are no JARs in WEB-INF/lib and no classes in WEB-INF/class (yes I know that's messed up). The html, javascript, css and JSP files live in $webAppRoot. </p>
  
  <p>The Jetty doc talking about <a href="http://docs.codehaus.org/display/JETTY/Embedding+Jetty" rel="nofollow">JSP2.1</a> support indicates that ant-1.6.5 is a required dependency. This project does not include ant yet the JSPs are compiled and work when you hit them. </p>
  
  <p>When I move the application class files into WEB-INF/classes and their dependent JARs into WEB-INF/lib Jetty throws a class not found error saying it can't find an ANT related class when I hit one of the JSPs. Why do the JSPs compile without ANT in the original configuration but when I move things into WEB-INF ANT becomes required? </p>