Я изучаю ANT, и я пытаюсь развернуть веб-приложение на сервере tomcat 6.0.20. Я создаю тестовое приложение, и я развертываю его с помощью задач менеджера ant, и все идет правильно. Я загружаю HTML-страницу, и она работает ... Когда я пытаюсь просмотреть JSP tomcat, дайте мне исключение JasperException, рассмотренное с помощью исключения NullPointerException в автоматически создаваемом Servlet. JSP - это почти файл HTML с расширением jsp. Исключение выбрано методом _jspInit, когда он пытается запустить следующее: _el_expressionfactory = _jspxFactory.getJspApplicationContext (getServletConfig(). GetServletContext()). GetExpressionFactory(); Кто-нибудь может мне помочь? благодаря!JSP-проблема развертывания java-приложения в tomcat
ответ
Возможно, у вас есть jsp-api-*.jar
в /WEB-INF/lib
. Убери это.
EDIT: Объяснение
JSP API содержит абстрактный класс JspFactory
. Он имеет поле static
для хранения конкретной версии сервера JspFactory
. Таким образом, Tomcat устанавливает значение этого поля, а код инициализации страницы JSP читает его, чтобы получить реализацию JspFactory
. В вашем случае у вас есть два разных класса: JspFactory
- один загружается серверным загрузчиком классов из серверных баночек, а другой загружен загрузчиком классов приложений от /WEB-INF/lib
. Поскольку классы, загружаемые разными загрузчиками классов, являются разными классами, они имеют разные значения полей static
, поэтому JspFactory
, полученный кодом JSP (_jspxFactory
), равен null
.
Это иллюстрирует одну из возможных проблем, вызванных использованием полей static
.
Действительно, он не единственный: [нажмите здесь] (http://www.google.com/search?q=NullPointerException+_jspInit). Избавьтесь от всех библиотек, специфичных для сервера, в '/ WEB-INF/lib'. Они не принадлежат к ним и будут сталкиваться только с настоящими серверными библиотеками в «Tomcat/lib». – BalusC
Большое спасибо! В этом была проблема !! Я поставил эту банку, чтобы что-то проверить, и я забыл ее удалить. Можете ли вы объяснить, почему это была ошибка? Я знаю, что у Tomcat есть банка в каталоге lib, но почему избыточность плоха? –
@ user279481: Пояснение добавлено. – axtavt