Подтвердить что ты не робот

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

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

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

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

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

4b9b3361

Ответ 1

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

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

См. также:

Ответ 2

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

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
        <scope>provided</scope>
    </dependency>

Ответ 3

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

В Eclipse:

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

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

Примечание. Подробнее об этой проблеме см. этот пост.