Ответ 1
Сначала добавьте среду выполнения и выберите свойства проекта. Затем проверьте имя сервера на вкладке "Runtimes", как показано на рисунке.
У меня есть проект, созданный интеграцией 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 - все в порядке, никаких ошибок.
Сначала добавьте среду выполнения и выберите свойства проекта. Затем проверьте имя сервера на вкладке "Runtimes", как показано на рисунке.
Включите 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'
}
Проект → Свойства → Целевые Runtimes → Apache Tomcat работал для меня. Нет никаких целевых Runtimes под гранями (я нахожусь Eclipse v4.2 (Juno)).
Включить сервлет-api.jar из папки вашего сервера.
Сделайте этот шаг
Что это такое?
Файл 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.
Проект → Свойства → Целевые сроки выполнения → * Apache Tomcat работал для меня. Нет никаких целевых Runtimes под гранями (я нахожусь Eclipse v4.4 (Luna)).
Для проекта 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 (любой сервер)
Добавление сервера Tomcat в рабочую среду сервера выполнит задание:
Свойства проекта → Целевые сроки выполнения → Выберите сервер из списка "Время выполнения JBoss" → Finish
В случае Apache вы можете выбрать время выполнения Apache.
Просто добавьте эти зависимости в ваш файл 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>
Эти шаги могут действительно помочь вам:
Если вы не установили сервер, вам необходимо выполнить следующие действия:
Меню Окно → Настройки → Expend Server → среда выполнения → Добавить → выберите имя и затем выберите путь к серверу Apache, который вы уже установили на свой компьютер (вы можете нажать и загрузить и установить) → Finish → OK
Ссылка # для получения дополнительной информации нажмите здесь
Добавьте сервер Tomcat:
Свойства проекта → Путь сборки Java → Добавить библиотеку → Выберите "Время выполнения сервера" из списка * → Далее em> → Выберите "Apache Tomcat" → Finish
Ссылка # Этот ответ
Добавление сервера Tomcat в рабочую среду сервера будет выполнять следующее задание:
Свойства проекта → Путь сборки Java → Добавить библиотеку → Выберите "Время выполнения сервера" из списка → Далее → Выберите "Apache Tomcat" → Готово.
Выберите проект → Свойства → Границы проекта → Целевые Runtimes → Сервер VMware.
Это сработало для меня.
Поскольку это не отвечает, я предполагаю, что что-то другое, кроме зависимостей Maven, ошибочно связано с сборкой ops.
Пока я не использую Maven, у меня такая же проблема время от времени, когда я воссоздал свою среду разработки из svn, и я всегда забываю, почему и нужно это понять. К сожалению, похоже, это проблема с Eclipse.
Я могу удалить все такие ошибки из рабочих проектов, выбрав только один из динамических веб-проектов или просто проекты, зависящие от tomcat, и переместите зависимость в порядке построения. Кажется, это заставляет все проекты правильно перестраиваться, а затем все ошибки устраняются.
Щелкните правой кнопкой мыши веб-проект, выберите "build Path" -> "Configure Build Path". Перейдите на вкладку "Заказ и экспорт", затем выберите библиотеку или банку и переместите ее вверх или вниз. Я использовал Системную библиотеку JRE и переместил ее вверх.
Нажмите "ОК", и все это красное исчезнет!
Если вы не используете Maven, просто отпустите javax.servlet-api.jar в папке проекта lib.
И если ничего не по какой-либо причине, постройте его из командной строки:
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
В случае JBoss ... щелкните правой кнопкой мыши по проекту → Построить путь Java → добавить внешние файлы JAR.
Затем перейдите в папку jboss → Common → lib → servlet-api.jar
. , Нажмите OK, обновите проект и запустите его ...