it-swarm.com.ru

Импорт javax.servlet не может быть разрешен

Я пытаюсь использовать Eclipse для Java EE для разработки веб-приложений.

Мне нужно использовать Tomcat в качестве моего сервера. Я скачал Tomcat, и он работает. Но моя программа не компилируется.

Я получаю следующую ошибку:

Импорт javax.servlet не может быть разрешен.

Что мне нужно сделать?

125
snakile

Вам необходимо добавить Servlet API в ваш путь к классам. В Tomcat 6.0 это находится в JAR с именем servlet-api.jar в папке lib Tomcat. Вы можете либо добавить ссылку на этот JAR в путь к классам проекта, либо поместить копию JAR в свой проект Eclipse и оттуда добавить ее в путь к классам.

Если вы хотите оставить JAR в папке Tomcat lib:

  • Щелкните правой кнопкой мыши проект, выберите Свойства.
  • Выберите Путь сборки Java.
  • Перейдите на вкладку Библиотеки
  • Нажмите Добавить внешние файлы JAR ...
  • Найдите и найдите servlet-api.jar и выберите его.
  • Нажмите OK, чтобы обновить путь сборки.

Или, если вы копируете JAR в свой проект:

  • Щелкните правой кнопкой мыши проект, выберите Свойства.
  • Выберите Путь сборки Java.
  • Нажмите Добавить JAR-файлы ...
  • Найдите servlet-api.jar в своем проекте и выберите его.
  • Нажмите OK, чтобы обновить путь сборки.
195
Richard Fearn

Если это еще не сделано, вам нужно интегрировать Tomcat в представление Серверы. Щелкните правой кнопкой мыши там и выберите Новый> Сервер. Выберите соответствующую версию Tomcat из списка и завершите работу мастера.

Когда вы создаете новый Dynamic Web Project, вы должны выбрать интегрированный сервер из списка как Targeted Runtime на первом шаге мастера.

Или, если у вас есть существующий Dynamic Web Project, вы можете установить/изменить его в Targeted Runtimes записи в свойствах проекта. Затем Eclipse автоматически добавит все свои библиотеки в путь сборки (не имея их копии в проекте!).

90
BalusC

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

http://maven.Apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Scope

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

Тогда все будет хорошо.

17
Jeroen Rondeel

Добавьте servlet-api.jar в ваш путь к классам. Вы можете взять его из папки lib Tomcat.

13
Bozho

У меня была та же проблема, потому что мой "Динамический веб-проект" не имел ссылки на установленный сервер, который я хотел использовать, и поэтому не имел ссылки на Servlet API, предоставляемый сервером.

Следующие шаги решили эту проблему, не добавляя дополнительный Servlet-API в Java Путь сборки (версия Eclipse: Luna):

  • Щелкните правой кнопкой мыши в вашем "Динамическом веб-проекте"
  • Выберите Свойства
  • Выберите Project Facets в списке слева от мастера "Свойства"
  • В правой части мастера вы увидите вкладку с именем Runtimes. Выберите вкладку Runtime и проверьте сервер вы хотите запустить сервлет.

Edit: если в списке нет серверов, вы можете создать новый на вкладке Runtime

12
leiseliesel

Добавить в pom.xml

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
</dependency>
8
Andrey

Если вы получаете эту ошибку компиляции, это означает, что вы не включили jar сервлета в classpath. Правильный способ включить этот jar - добавить jar Server Runtime в ваш проект Eclipse. Чтобы решить эту проблему, выполните следующие действия: Вы можете скачать servlet-api.jar отсюда http://www.Java2s.com/Code/Jar/s/Downloadservletapijar.htm

Save it in directory. Right click on project -> go to properties->Buildpath and follow the steps.

Примечание: Баночка, отображаемая на экране, неверна.

вы можете следовать шагу для настройки.

enter image description here

enter image description hereenter image description hereenter image description here

5
Varun

Была такая же проблема в Eclipse. По какой-то причине у меня не было файла servlet.jar в моем пути сборки. В итоге я скопировал папку "lib" из другого моего проекта в проект, над которым я работал, затем вручную вошел в эту папку и добавил файл servlet.jar в путь сборки (опция появляется, когда вы нажмите на файл в проводнике проекта).

2
YMW