2010-06-18 1 views
2

Я изучаю 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

ответ

3

Возможно, у вас есть 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.

+0

Действительно, он не единственный: [нажмите здесь] (http://www.google.com/search?q=NullPointerException+_jspInit). Избавьтесь от всех библиотек, специфичных для сервера, в '/ WEB-INF/lib'. Они не принадлежат к ним и будут сталкиваться только с настоящими серверными библиотеками в «Tomcat/lib». – BalusC

+0

Большое спасибо! В этом была проблема !! Я поставил эту банку, чтобы что-то проверить, и я забыл ее удалить. Можете ли вы объяснить, почему это была ошибка? Я знаю, что у Tomcat есть банка в каталоге lib, но почему избыточность плоха? –

+0

@ user279481: Пояснение добавлено. – axtavt

 Смежные вопросы

  • Нет связанных вопросов^_^