Как мне импортировать API javax.servlet в мой проект Eclipse? - PullRequest
308 голосов
/ 02 ноября 2010

Я хочу разрабатывать с сервлетами в Eclipse, но он говорит, что пакет javax.servlet не может быть разрешен.Как я могу добавить пакет javax.servlet в свой проект Eclipse?

Ответы [ 14 ]

402 голосов
/ 02 ноября 2010

Убедитесь, что у вас есть нужные Eclipse и сервер

Убедитесь, что вы используете как минимум Eclipse IDE для Java EE разработчиков EE ).Он содержит инструменты разработки для создания динамических веб-проектов и простой интеграции контейнеров сервлетов (эти инструменты являются частью Web Tools Platform, WTP).Если у вас уже была Eclipse IDE для Java (без EE) и вы вручную установили некоторые плагины, связанные с EE, то есть вероятность, что это было сделано неправильно.Лучше всего удалить его и взять реальную среду разработки Eclipse для Java EE.

Вам также необходимо убедиться, что на вашей машине уже установлен контейнер сервлетов, в котором реализована, по крайней мере, та же версия API сервлетов, что и в сервлетконтейнере.в производственной среде, например Apache Tomcat , Oracle GlassFish , JBoss AS / WildFly и т. д. Обычно просто загружают ZIPфайл и распаковка его достаточно.В случае Tomcat не загружайте формат EXE, это только для производственных сред на базе Windows.См. Также ao Несколько портов (8005, 8080, 8009), необходимых для Tomcat Server на локальном хосте, уже используются .

Контейнер сервлета - это конкретная реализация API сервлета.Обратите внимание, что Java EE SDK , загружаемый с Oracle.com, в основном содержит GlassFish.Так что если вы уже скачали Java EE SDK, то у вас уже есть GlassFish.Также обратите внимание, что, например, GlassFish и JBoss AS / WildFly на больше , чем просто контейнер сервлетов, они также поддерживают JSF, EJB, JPA и все другие возможности Java EE.См. Также ao Что такое Java EE?


Интегрировать сервер в Eclipse и связать его с проектом

После установки Eclipse для Java EE и контейнера сервлетовНа вашем компьютере выполните следующие действия в Eclipse:

  1. Интегрируйте сервлет-контейнер в Eclipse

    a. Через представление серверов

    • Откройте представление Servers в нижнем поле.
    • Щелкните правой кнопкой мыши там и выберите New> Server .
    • Выберите подходящую марку и версию сервлет-контейнера и пройдите мастер.

      enter image description here

    б. Или через настройки Eclipse

    • Открыть Окно> Предпочтения> Сервер> Среды выполнения .
    • Можно Добавьте , Редактировать и Удалите серверов здесь.

      enter image description here

  2. Связать сервер с проектом

    a. В новом проекте

    • Откройте Project Navigator / Explorer с левой стороны.
    • Щелкните правой кнопкой мыши там и выберите Новый> Проект , а затем в меню Веб> Динамический веб-проект .
    • В мастере установите Target Runtime для интегрированного сервера.

      enter image description here

    b. Или в существующем проекте

    • Щелкните правой кнопкой мыши проект и выберите Свойства .
    • В Targeted Runtimes в разделе выберите интегрированный сервер.

      enter image description here

    В любом случае, Eclipse автоматически примет библиотеки контейнера сервлет-контейнера в путь сборки.Таким образом, вы сможете импортировать и использовать Servlet API.


Никогда не носите с собой свободные JAR-файлы, специфичные для сервера

В любом случае вам не нужно возиться в свойстве Build Path проекта. Прежде всего, вы должны никогда вручную копировать / загружать / перемещать / включать отдельные библиотеки, специфичные для servletcontainer, такие как servlet-api.jar, jsp-api.jar, el-api.jar, j2ee.jar, javaee.jar и т. Д. только приводят к будущим проблемам переносимости, совместимости, пути к классам и ремонтопригодности, потому что ваше веб-приложение не будет работать, когда оно развернуто на контейнере сервлетов другой марки / версии, чем те, из которых эти библиотеки изначально получены.

Если вы используете Maven, вам необходимо убедиться, что библиотеки, зависящие от servletcontainer, которые уже предоставлены целевой средой выполнения, помечены как <scope>provided</scope>.

Вот некоторые типичные исключения, которые вы можете получить, когда мусор /WEB-INF/lib или даже /JRE/lib, /JRE/lib/ext и т. Д. С библиотеками servletcontainer для небрежной попытки исправить ошибки компиляции:

217 голосов
/ 15 февраля 2012

import javax.servlet

ШАГ 1

Перейдите в свойства вашего проекта (с Alt + Введите или щелкните правой кнопкой мыши)

ШАГ 2

отметьте Apache Tomcat v7.0 в Targeted Runtime и все работает.

76 голосов
/ 08 июня 2012

Небольшое отличие от Hari:

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

13 голосов
/ 18 сентября 2014

Включите servlet-api.jar из папки lib вашего сервера. enter image description here

Выполните этот шаг

enter image description here

12 голосов
/ 12 апреля 2012

Быстрое исправление - Это работало в Eclipse - Правый клик по проекту -> Свойства -> Путь сборки Java (вкладка) -> Добавить внешние JAR -> найти реализацию api jar сервлета (если Tomcat - его имя servlet-api.jar) -> нажмите ОК.Вот и все !!

11 голосов
/ 18 июня 2015

Добавить зависимость javax.servlet в pom.xml.Ваша проблема будет решена.

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.0.1</version>
    <scope>provided</scope>
</dependency>
5 голосов
/ 19 августа 2016

Я знаю, что это старый пост.Однако я наблюдал еще один случай, когда в проект уже добавлен Tomcat, но мы все еще получаем эту ошибку.Сделал это, чтобы решить, что:
Alt + Введите
Фасеты проекта
Справа, рядом с подробностями, находится еще одна вкладка "Runtime".Установленный сервер Tomcat будет указан там.Выберите это.
Сохраните конфигурацию и СДЕЛАНО!

Надеюсь, это кому-нибудь поможет.

5 голосов
/ 08 февраля 2014

Вы можете просто скопировать servlet-api.jar и скопировать эти файлы jar в папку lib, которая находится в WEB-INF.затем просто очистите и соберите свой проект, ваши ошибки будут исправлены.

  **OR**

Вы можете напрямую добавить файлы JAR в библиотеку, выполнив следующие действия.

  1. Щелкните правой кнопкой мыши по проекту.
  2. Перейти к свойствам.
  3. Перейти к пути сборки Java.
  4. Выбрать опцию Добавить библиотеку на вкладках.
  5. Добавить файлы Jar
  6. укажите путь к вашему servlet-api.jar файлу.
  7. Очистите и постройте свой проект.
3 голосов
/ 31 марта 2018

Для проектов Maven добавьте следующую зависимость:

<!-- https://mvnrepository.com/artifact/javax.servlet/servlet-api -->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.0.1</version>
    <scope>provided</scope>
</dependency>

Ссылка

Для проектов Gradle:

dependencies {
providedCompile group: 'javax.servlet', name: 'javax.servlet-api', version: '3.0.1'
}

или загрузите javax.servlet.jarи добавьте в свой проект.

3 голосов
/ 02 ноября 2010

Из википедии .

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloWorld extends HttpServlet {
  public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    PrintWriter out = response.getWriter();
    out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " +
                "Transitional//EN\">\n" +
                "<html>\n" +
                "<head><title>Hello WWW</title></head>\n" +
                "<body>\n" +
                "<h1>Hello WWW</h1>\n" +
                "</body></html>");
  }
}

Это, конечно, работает, только если вы добавили servlet-api.jar в путь сборки Eclipse.Обычно ваш сервер приложений (например, Tomcat ) будет иметь правильный файл JAR.

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