Выполнить JSP с Jetty 7.3 без Javac - PullRequest
1 голос
/ 15 ноября 2011

Проблема: у меня есть веб-приложение, которое обслуживается веб-сервером Jetty v 7.3.У меня есть страница JSP в приложении.Когда я запускаю Jetty в системе, в которой установлен JDK (javac), все работает нормально.Я хочу перенести это на систему, которая имеет JRE (не имеет Javac).Когда я запускаю причал, я получаю сообщение об ошибке.

Решение: предварительно скомпилируйте JSP в сервлет.Создайте файл войны приложения, который включает этот сервлет.Пусть jetty выполнит сервлет вместо компиляции и выполнения JSP во время выполнения.

Я попытался предварительно скомпилировать JSP с помощью муравьиной цели JSPC.Но он генерирует пустой файл .java.Мой целевой код выглядит следующим образом.

<jspc srcdir="${web.dir}"
          destdir="${build.classes.dir}"
          package="x.y.z"
          verbose="9"
          classpathref="project.class.path">
      <include name="**/index.jsp"/>
    </jspc>

Пожалуйста, предложите мне правильный подход.Если мой подход верен, пожалуйста, укажите на ошибку, которую я допускаю при настройке задачи ant.

1 Ответ

3 голосов
/ 16 ноября 2011

Не используйте поставленное муравьем задание jspc.Он устарел, ненадежен и работает только с установленным Tomcat 4 (определенные версии).

Вместо этого установите Tomcat (какая версия лучше поддерживает те же спецификации JSP / Servlet, что и у развернутой Jetty) и вызовите компилятор Jasper черезTomcat предоставил задачу Ant. Пример для Tomcat 5 доступен здесь .

Обратите внимание, что как только страницы JSP скомпилированы в сервлеты, сервлеты скомпилированы в классы и т. Д. Вам не нужно ничего этого "build environment "в вашей среде развертывания Jetty.

Также обратите внимание, что в комментарии к концу муравья поставлено jspc task .Не знаю, актуально ли это, но интересно.

...