jetty-6.1.9.jar、jsp-2.1.jar、jsp-api-2.1.jar、servlet-api-2.5-6.1.9.jarを含み、JRE1.7.0_03で実行されているレガシープロジェクトを使用しています。 。
JettyサーバーはMyServer.javaのmainメソッド内で起動されます。WebAppContextを作成し、WebAppContext.setWar($ webAppRoot)を呼び出します。ここで、$ webAppRootは、通常のWEB-INF構造であるディレクトリへのフルパスです。
すべてのアプリクラスと依存JARは、MyServer.mainを呼び出すクラスパスで指定されます。WEB-INF/ libにはJARはなく、WEB-INF / classにはクラスはありません(そうです、混乱していることはわかっています)。html、javascript、css、JSPファイルは$webAppRootにあります。
JSP2.1のサポートについて話しているJettyのドキュメントは、ant-1.6.5が必須の依存関係であることを示しています。このプロジェクトにはantは含まれていませんが、JSPはコンパイルされ、ヒットすると機能します。
アプリケーションクラスファイルをWEB-INF/classesに移動し、それらに依存するJARをWEB-INF / libに移動すると、JSPの1つにヒットしたときに、ANT関連のクラスが見つからないというエラーがJettyによってスローされます。元の構成でANTなしでJSPをコンパイルするのに、WEB-INFに移動するとANTが必要になるのはなぜですか?