我正在处理一个遗留项目,其中包括 jetty-6.1.9.jar、jsp-2.1.jar、jsp-api-2.1.jar、servlet-api-2.5-6.1.9.jar 并在 JRE 1.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 中。
Jetty 文档谈论JSP2.1支持表明 ant-1.6.5 是必需的依赖项。该项目不包括 ant,但 JSP 已编译并在您点击它们时工作。
当我将应用程序类文件移动到 WEB-INF/classes 并将它们的依赖 JAR 移动到 WEB-INF/lib 时,Jetty 会抛出一个找不到类的错误,说当我点击其中一个 JSP 时它找不到与 ANT 相关的类。为什么在原始配置中没有 ANT 的 JSP 编译,但是当我将东西移动到 WEB-INF 时,需要 ANT?