Метод getJspApplicationContext (ServletContext) не определен для типа JspFactory. - PullRequest
29 голосов
/ 15 августа 2011

Я работаю над проектом JSP, который использует Apache Tomcat 7.

При запуске проекта при его загрузке index.html все нормально, но при попытке перейти на другую страницу выдает ошибку:

Метод getJspApplicationContext (ServletContext) не определен для типа JspFactory

Пожалуйста, дайте мне решение, чтобы избавиться от этого.

Ответы [ 3 ]

73 голосов
/ 15 августа 2011

Избавьтесь от любых специфичных для servletcontainer библиотек, таких как jsp-api.jar в вашей папке /WEB-INF/lib. Это исключение означает, что вы поместили в него библиотеки, специфичные для servletcontainer контейнера, который поддерживает только Servlet 2.4 / JSP 2.0 или более раннюю версию (метод getJspApplicationContext() был представлен в Servlet 2.5 / JSP 2.1). Это большая ошибка. Эти библиотеки не входят в путь к классам веб-приложения.

Возможно, вы сделали это, чтобы преодолеть ошибки компиляции проекта, что действительно является довольно распространенной ошибкой новичка. Это должно быть решено по-другому, вы должны ссылаться на целевую среду выполнения в вашем проекте, а не копировать некоторые библиотеки произвольной сборки / версии контейнера сервлетов в ваш проект. Это сделает ваш проект несовместимым с сервлет-контейнерами другой марки и / или версии.

Смотри также:

6 голосов
/ 28 июля 2015

если у вас есть проект maven, попробуйте добавить следующую зависимость

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
        <scope>provided</scope>
    </dependency>
0 голосов
/ 13 февраля 2013

В вашем проекте необходимо указать время выполнения сервера.

В Eclipse:

  • Выберите «Проект | Свойства | Путь сборки Java | Вкладка Библиотеки»
  • Нажмите «Добавить библиотеку | Серверная среда | Apache Tomcat 7»
  • Нажмите ОК.
  • Очистите ваш проект и соберите его снова («Проект | Очистить», затем «Проект | Построить все»)

Это должно сделать это!

Примечание: см. этот пост переполнения стека для более подробной информации об этой проблеме

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...