2010-11-07 3 views
112

Я пытаюсь использовать eclipse для Java EE для разработки веб-приложений.Импорт javax.servlet не может быть разрешен

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

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

The import javax.servlet can't be resolved.

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

ответ

170

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

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

  • правой кнопкой мыши проект, выберите Свойства.
  • Выбрать Путь на Java-путь.
  • Нажмите Add External JARs ...
  • Обзор, чтобы найти servlet-api.jar и выберите его.
  • Нажмите OK, чтобы обновить путь сборки.

Или, если скопировать файл JAR в ваш проект:

  • правой кнопкой мыши проект, выберите Свойства.
  • Выбрать Путь на Java-путь.
  • Нажмите Добавить JARs ...
  • Найти servlet-api.jar в проекте и выберите его.
  • Нажмите OK, чтобы обновить путь сборки.
+7

Имея копию servletcontainer конкретных JAR в '/ WEB-INF/lib' бы сделать свой приложение не переносимо. Он будет работать только на том же сервере make/version, а не на другом сервере make/versions. 'NoClassDefFoundError' будет летать вокруг вашей головы. – BalusC

+0

Я никогда не говорил, что это нужно в 'WEB-INF/lib' - просто чтобы его можно было скопировать в проект, чтобы его можно было добавить в путь сборки. Это не обязательно означает, что он включен в WAR. –

+5

Тем не менее, это довольно неуклюжий и не рекомендуемый подход. – BalusC

11

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

84

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

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

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

+15

, вероятно, лучший совет в долгосрочной перспективе. – Bozho

+0

Это было более полезно. – rdp

+0

@sage: Eclipse делает это также для новых проектов, созданных после интеграции сервера. – BalusC

1

У той же проблемы в Затмении. По какой-то причине у меня не было файла servlet.jar в моем пути сборки. То, что я закончил, - это копирование папки «lib» из другого моего проекта в проект, над которым я работал, затем вручную перейдя в эту папку и добавив файл servlet.jar в путь сборки (опция появляется, щелкните файл в проводнике проекта).

8

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

Следующие шаги решены без добавления дополнительных Servlet-API в Java Build Path (версия Eclipse: Луна):

  • Щелкните правой кнопкой мыши на вашем "Dynamic Web Project"
  • Выберите Свойства
  • Выбор проекта Грани в списке на левой стороне «Свойства» мастера
  • Справа от мастера вы должны увидеть вкладку с именем Runtimes. Выберите вкладку Runtime и проверьте сервер, который вы хотите запустить сервлет.

Edit: если нет сервера в списке вы можете создать новую на вкладке Runtimes

+1

спасибо, решил мою проблему с java 8, tomcate8 – kn3l

+1

Путь к работе. Большое спасибо! –

4

Если вы получаете эту ошибку компиляции, это не означает, что вы не включили сервлет банки в пути к классам , Правильный способ включить эту банку - добавить банку Runtime сервера в проект eclipse. Вы должны следовать инструкциям ниже, чтобы решить эту проблему: Вы можете скачать сервлет-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 here enter image description here enter image description here

5

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

<dependency> 
    <groupId>javax.servlet</groupId> 
    <artifactId>javax.servlet-api</artifactId> 
    <version>3.1.0</version> 
</dependency> 
Смежные вопросы