Проблема JSP при развертывании веб-приложения Java в Tomcat - PullRequest
2 голосов
/ 18 июня 2010

Я изучаю ANT и пытаюсь развернуть веб-приложение на сервере tomcat 6.0.20.Я создаю тестовое приложение и разворачиваю его с помощью менеджера и задач, и все идет хорошо.Я загружаю HTML-страницу, и она работает ... Когда я пытаюсь просмотреть Tomcat JSP, выдаю мне JasperException, вызванную NullPointerException в автоматически сгенерированном сервлете.JSP - это почти HTML-файл с расширением jsp.Исключение выдается в методе _jspInit, когда он пытается выполнить следующее: _el_expressionfactory = _jspxFactory.getJspApplicationContext (getServletConfig (). GetServletContext ()). GetExpressionFactory ();кто-нибудь может мне помочь?спасибо!

1 Ответ

3 голосов
/ 18 июня 2010

Возможно, у вас есть jsp-api-*.jar в /WEB-INF/lib. Удалить его.

РЕДАКТИРОВАТЬ : Объяснение

JSP API содержит абстрактный класс JspFactory. В нем есть поле static для хранения серверной реализации JspFactory. Итак, Tomcat устанавливает значение этого поля, а код инициализации страницы JSP считывает его, чтобы получить реализацию JspFactory. В вашем случае у вас есть два разных класса JspFactory - один загружается загрузчиком классов сервера из серверных jar-файлов, а другой загружается загрузчиком классов приложения из /WEB-INF/lib. Поскольку классы, загружаемые разными загрузчиками классов, являются разными классами, они имеют разные значения полей static, поэтому JspFactory, полученный кодом JSP (_jspxFactory), равен null.

Это иллюстрирует одну из возможных проблем, вызванных использованием полей static.

...