Я работаю с унаследованным проектом, который включает в себя причал-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 компилирует JSP?
Сервер Jetty запускается в основном методе MyServer.java. Он создает WebAppContext и вызывает WebAppContext.setWar ($ webAppRoot), где $ webAppRoot - полный путь к каталогу, в котором находится обычная структура WEB-INF.
Все классы приложений и зависимые JAR указаны в пути к классам, который вызывает MyServer.main, в WEB-INF/lib нет классов JAR и нет классов в WEB-INF/классе (да, я знаю, что это испорчено) , Файлы html, javascript, css и JSP живут в $ webAppRoot.
Док-станция, говорящая о JSP2.1, указывает, что ant-1.6.5 является необходимой зависимостью. Этот проект не содержит муравьев, но JSPs компилируются и работают, когда вы нажимаете на них.
Когда я перемещаю файлы классов приложений в классы WEB-INF/и их зависимые JAR-файлы в WEB-INF/lib Jetty выдает ошибку класса, не найденную, заявив, что не может найти класс, связанный с ANT, когда я ударил одну из JSPs. Почему JSPs компилируются без ANT в исходной конфигурации, но когда я перехожу в WEB-INF ANT, требуется?
Я предполагаю, что эти JSP-банки пришли из дистрибутива Jetty-6.1.9, поскольку я только что загрузил его и нашел в каталоге lib/jsp-2.1. – NBW
Я запустил вещи с классом -verbose: class и заметил, когда все в конфигурации, которая запускает зависимость ANT, вызывает Jasper-классы (JspServletWrapper, JspCompilationContext, JasperLoader, Compiler) из jsp-2.1.jar. В конце концов вызывается «AntJavaCompiler» из пространства имен Jasper. Это вызывает зависимость от ANT. – NBW
ОК, это было хорошо, прежде чем стеклянная рыба переместила их JSP-образ на jsp.java.net, и я думаю, что мы потребляли его из своего репозитория svn и немного исправляли его, а затем выпускали эти банки. Переход на поддержку других компиляторов был бы в течение последних 5 лет, так что да ... похоже, вы, скорее всего, застряли с муравьем. Я бы все же просто предварительно скомпилировал, если можно, и избавиться от любых проблем перед развертыванием. –