Суперкласс "javax.servlet.http.HttpServlet" не найден на пути сборки Java

У меня есть проект, созданный интеграцией Maven в Eclipse. Все работает нормально, но в рабочем пространстве во всех файлах JSP есть следующее:

The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path

В первую строку, где место:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

Когда я создаю базовый динамический веб-проект и JSP - все в порядке, никаких ошибок.

Ответ 1

Сначала добавьте среду выполнения и выберите свойства проекта. Затем проверьте имя сервера на вкладке "Runtimes", как показано на рисунке.

Select runtime from Project Facets as shown the in image

Ответ 2

Включите servlet-api-3.1.jar в свои зависимости.

  • Maven

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
        <scope>provided</scope>
    </dependency>
    
  • Gradle

    configurations {
        provided
    }
    sourceSets {
        main { compileClasspath += configurations.provided }
    }
    dependencies {
        provided 'javax.servlet:javax.servlet-api:3.1.0'
    }
    

Ответ 3

Проект → Свойства Целевые Runtimes → Apache Tomcat работал для меня. Нет никаких целевых Runtimes под гранями (я нахожусь Eclipse   v4.2 (Juno)).

Ответ 4

Включить сервлет-api.jar из папки вашего сервера.

Enter image description here

Сделайте этот шаг

Enter image description here

Что это такое?

Файл JAR сервлета-api - это библиотека, которая содержит интерфейсы и классы спецификации API сервлета. Файл JAR сервлета-api содержит только интерфейс (API) спецификации сервлета, поэтому вы можете использовать его для разработки своего веб-приложения.

Где вы можете его получить?

Он предоставляется по следующей ссылке:

http://download.oracle.com/otndocs/jcp/servlet-3.0-fr-eval-oth-JSpec/

Где он содержится/в комплекте

Servlet-api.jar является частью загрузки Java EE, поэтому вы можете создавать свои веб-приложения (вы не смогли бы скомпилировать свой класс FirstServlet, если Java EE не будет содержать его).

Контейнеры сервлетов (например, Tomcat, JBoss, GlassFish и т. д.) также содержат сервлет-api.jar, иначе они не смогут запускать ваше веб-приложение, и, кроме того, они также содержат реализацию интерфейсов, которые являются частью API сервлета.

Имя не всегда одно и то же, и оно может даже не существовать как отдельный JAR-файл, классы API сервлета могут быть связаны в другом JAR-файле.

Однако вы можете загрузить отдельный JAR-файл, содержащий только API сервлета, если вы просто хотите создать веб-приложение для контейнера Servlet или хотите создать/написать свою собственную реализацию API сервлета. Посмотрите здесь:

http://download.oracle.com/otndocs/jcp/servlet-3.0-fr-eval-oth-JSpec/

Портативность

Вы можете скомпилировать свое веб-приложение, если у вас есть API-интерфейс Servlet, независимо от того, откуда он. После того, как вы скомпилировали свое веб-приложение, вы можете по желанию упаковать его в WAR-файл (WAR = Web ARchive), который представляет собой просто ZIP-файл, содержащий ваши статические файлы, ваши скомпилированные классы Java и файлы конфигурации, такие как web.xml и т.д. И вы будете иметь возможность запускать скомпилированное веб-приложение в любых контейнерах Servlet.

Ответ 5

Проект → Свойства → Целевые сроки выполнения → * Apache Tomcat работал для меня. Нет никаких целевых Runtimes под гранями (я нахожусь Eclipse   v4.4 (Luna)).

Ответ 6

Для проекта Ant:

Убедитесь, что у вас есть servlet-api.jar в папке lib.

Для проекта Maven:

Убедитесь, что у вас есть зависимость, добавленная в POM.xml.

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

Другой способ сделать это:: обновить фасет проекта, чтобы выбрать правильный сервер.

Установите этот флажок в этом месте:

Проект → Свойства → Целевые сроки выполнения → Apache Tomcat (любой сервер)

Ответ 7

Добавление сервера Tomcat в рабочую среду сервера выполнит задание:

Свойства проекта → Целевые сроки выполнения → Выберите сервер из списка "Время выполнения JBoss" → Finish

В случае Apache вы можете выбрать время выполнения Apache.

Enter image description here

Ответ 8

Просто добавьте эти зависимости в ваш файл pom.xml:

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

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

Ответ 9

Эти шаги могут действительно помочь вам:

  • Если вы не установили сервер, вам необходимо выполнить следующие действия:

    Меню Окно Настройки Expend Server среда выполнения → Добавить → выберите имя и затем выберите путь к серверу Apache, который вы уже установили на свой компьютер (вы можете нажать и загрузить и установить) → FinishOK

Ссылка # для получения дополнительной информации нажмите здесь

  1. Добавьте сервер Tomcat:

    Свойства проекта Путь сборки Java Добавить библиотеку → Выберите "Время выполнения сервера" из списка * → Далее em> → Выберите "Apache Tomcat" → Finish

  2. Ссылка # Этот ответ

Ответ 10

Добавление сервера Tomcat в рабочую среду сервера будет выполнять следующее задание:

Свойства проекта → Путь сборки Java Добавить библиотеку Выберите "Время выполнения сервера" из списка → Далее → Выберите "Apache Tomcat" → Готово.

Ответ 11

Выберите проект → Свойства Границы проекта Целевые Runtimes → Сервер VMware.

Это сработало для меня.

Ответ 12

Поскольку это не отвечает, я предполагаю, что что-то другое, кроме зависимостей Maven, ошибочно связано с сборкой ops.

Пока я не использую Maven, у меня такая же проблема время от времени, когда я воссоздал свою среду разработки из svn, и я всегда забываю, почему и нужно это понять. К сожалению, похоже, это проблема с Eclipse.

Я могу удалить все такие ошибки из рабочих проектов, выбрав только один из динамических веб-проектов или просто проекты, зависящие от tomcat, и переместите зависимость в порядке построения. Кажется, это заставляет все проекты правильно перестраиваться, а затем все ошибки устраняются.

Щелкните правой кнопкой мыши веб-проект, выберите "build Path" -> "Configure Build Path". Перейдите на вкладку "Заказ и экспорт", затем выберите библиотеку или банку и переместите ее вверх или вниз. Я использовал Системную библиотеку JRE и переместил ее вверх.

Нажмите "ОК", и все это красное исчезнет!

Ответ 13

Если вы не используете Maven, просто отпустите javax.servlet-api.jar в папке проекта lib.

Ответ 14

И если ничего не по какой-либо причине, постройте его из командной строки:

ant -Dj2ee.server.home=D:\apache-tomcat-8.0.23 clean

ant -Dj2ee.server.home=D:\apache-tomcat-8.0.23 compile

ant -Dj2ee.server.home=D:\apache-tomcat-8.0.23 dist

Ответ 15

В случае JBoss ... щелкните правой кнопкой мыши по проекту → Построить путь Java → добавить внешние файлы JAR.

Затем перейдите в папку jboss → Common → lib → servlet-api.jar

. , Нажмите OK, обновите проект и запустите его ...