не удается импортировать javax.сервлет.аннотация.WebServlet;
Я начал писать приложение, которое может работать на Google App Engine.
Но когда я хотел использовать свой код из Netbeans для Eclipse, у меня были ошибки:
import javax.servlet.annotation.WebServlet;
и
@WebServlet(name = "MyServlet", urlPatterns = {"/MyServlet"})
ошибки:
The import javax.servlet.annotation cannot be resolved
WebServlet cannot be resolved to a type
Я попытался импортировать сервлет-api.jar для Eclipse, но все тот же, также попытался построить и очистить проект.
Я не использую Tomcat на своем Eclipse, только на моих Netbeans.
Как я могу решить эту проблему?
10 ответов
Я попытался импортировать сервлет-api.jar для eclipse, но все же то же самое также пыталось построить и очистить проект. Я не использую tomcat на моем eclipse, только на моих сетевых бобах. Как я могу решить проблему.
Do не поставить servlet-api.jar
в вашем проекте. Это только напрашивается на неприятности. Вам нужно проверить в Аспекты Проекта раздел свойств вашего проекта, если Динамические Web-Модуль грань устанавливается на версию 3.0. Вы также должны убедиться, что ваш /WEB-INF/web.xml
(Если есть) объявлено conform Servlet 3.0 spec. Т. е. the <web-app>
корневая декларация должна соответствовать следующему:
<web-app
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
для того чтобы иметь возможность импортировать javax.servlet
материал, вам нужно интегрировать fullworthy servletcontainer как Tomcat в Eclipse, а затем ссылаться на него в Целевые Среды Выполнения свойства проекта. Вы можете сделать то же самое для Приложение Google Двигатель.
еще раз делать не скопируйте библиотеки, специфичные для контейнеров, в проект webapp, как предлагают другие. Это сделало бы ваш webapp unexecutabele на производственных контейнерах другой марки / версии. Вы получите ошибки/исключения, связанные с classpath, во всех цветах.
Читайте также:
связаны к конкретному вопросу: GAE делает не поддержка сервлетов 3.0. Его основной причал 7.X контейнер поддерживает только Max Servlet 2.5.
проверьте, что номер версии servlet-api.jar
по крайней мере 3.0. Существует номер версии внутри банки в :
Implementation-Version: 3.0.1
Если это меньше, чем 3.0, загрузите 3.0.1 из Maven Central: http://search.maven.org/#artifactdetails/javax.servlet/javax.servlet-api/3.0.1/jar
бывшие спецификации сервлета (2.5, 2.4 etc .) не поддерживает аннотации.
Если вы используете Maven и не хотите связывать Tomcat в Целевые Сред в Eclipse, вы можете просто добавить зависимость в области предоставил В пом.XML-код:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
У меня была та же проблема, оказывается, у меня был мой проект настроен, как многие из вас заявили выше, но проблема сохранялась, поэтому я пошел глубже и наткнулся на то, что я использовал Apache Tomcat 6 в качестве сервера выполнения, поэтому исправление было простым, я просто обновил проект для использования Apache Tomcat 7 и все, наконец, IDE распознал javax.сервлет.аннотация.WebServlet Примечание.
import javax.servlet.annotation.*;
(никто не написал этого, но нужно импорт это как WebInitparam не распознается другими пакетами)
на
window->Preference->server->runtime environment
затем выберите сервер tomcat. Если ошибка все еще существует, то
right click project->properties>Targeted Runtimes
затем проверьте сервер
Если вы используете IBM RAD, то убедитесь, что удалить любой j2ee.jar в ваших проектах build path -> libraries tab, а затем нажмите "Добавить внешний jar" и выберите j2ee.банка, которая поставляется с RAD.
У меня была такая же проблема с использованием Spring, решена путем добавления Tomcat Server Runtime для построения пути.
вам нужно добавить свой сервлет-api.Jar в путь сборки проекта. Посмотрите здесь для того, чтобы сделать это.