2014-11-14 1 views
21

Я начинаю учиться и учиться весне и спячке (используя maven в проекте) и столкнулся с этой проблемой и застрял здесь. попытался найти решение, но в конечном итоге не было. Пожалуйста помоги. спасибоСуперкласс «javax.servlet.http.HttpServlet» не найден на пути построения Java

Ошибка: "Не удается найти дескриптор библиотеки тегов для" http://java.sun.com/jsp/jstl/core "

Код:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring" %> 
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %> 

Пробовал решений, приведенных в The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path How do I import the javax.servlet API in my Eclipse project?

ошибка все еще присутствует

pom.xml

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema- instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
<modelVersion>4.0.0</modelVersion> 
<groupId>com.journaldev.spring</groupId> 
<artifactId>SpringMVCHibernate</artifactId> 
<name>SpringMVCHibernate</name> 
<packaging>war</packaging> 
<version>1.0.0-BUILD-SNAPSHOT</version> 
<properties> 
    <java-version>1.6</java-version> 
    <org.springframework-version>4.0.3.RELEASE</org.springframework-version> 
    <org.aspectj-version>1.7.4</org.aspectj-version> 
    <org.slf4j-version>1.7.5</org.slf4j-version> 
    <hibernate.version>4.3.5.Final</hibernate.version> 
</properties> 
<dependencies> 
    <!-- Spring --> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-context</artifactId> 
     <version>${org.springframework-version}</version> 
     <exclusions> 
      <!-- Exclude Commons Logging in favor of SLF4j --> 
      <exclusion> 
       <groupId>commons-logging</groupId> 
       <artifactId>commons-logging</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-webmvc</artifactId> 
     <version>${org.springframework-version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-tx</artifactId> 
     <version>${org.springframework-version}</version> 
    </dependency> 

    <!-- Hibernate --> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-core</artifactId> 
     <version>${hibernate.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-entitymanager</artifactId> 
     <version>${hibernate.version}</version> 
    </dependency> 

    <!-- Apache Commons DBCP --> 
    <dependency> 
     <groupId>commons-dbcp</groupId> 
     <artifactId>commons-dbcp</artifactId> 
     <version>1.4</version> 
    </dependency> 
    <!-- Spring ORM --> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-orm</artifactId> 
     <version>${org.springframework-version}</version> 
    </dependency> 

    <!-- AspectJ --> 
    <dependency> 
     <groupId>org.aspectj</groupId> 
     <artifactId>aspectjrt</artifactId> 
     <version>${org.aspectj-version}</version> 
    </dependency> 

    <!-- Logging --> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-api</artifactId> 
     <version>${org.slf4j-version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>jcl-over-slf4j</artifactId> 
     <version>${org.slf4j-version}</version> 
     <scope>runtime</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-log4j12</artifactId> 
     <version>${org.slf4j-version}</version> 
     <scope>runtime</scope> 
    </dependency> 
    <dependency> 
     <groupId>log4j</groupId> 
     <artifactId>log4j</artifactId> 
     <version>1.2.15</version> 
     <exclusions> 
      <exclusion> 
       <groupId>javax.mail</groupId> 
       <artifactId>mail</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>javax.jms</groupId> 
       <artifactId>jms</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>com.sun.jdmk</groupId> 
       <artifactId>jmxtools</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>com.sun.jmx</groupId> 
       <artifactId>jmxri</artifactId> 
      </exclusion> 
     </exclusions> 
     <scope>runtime</scope> 
    </dependency> 

    <!-- @Inject --> 
    <dependency> 
     <groupId>javax.inject</groupId> 
     <artifactId>javax.inject</artifactId> 
     <version>1</version> 
    </dependency> 

    <!-- Servlet --> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>servlet-api</artifactId> 
     <version>2.5</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>javax.servlet.jsp</groupId> 
     <artifactId>jsp-api</artifactId> 
     <version>2.1</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>jstl</artifactId> 
     <version>1.2</version> 
    </dependency> 

    <!-- Test --> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.7</version> 
     <scope>test</scope> 
    </dependency> 

</dependencies> 
<build> 
    <plugins> 
     <plugin> 
      <artifactId>maven-eclipse-plugin</artifactId> 
      <version>2.9</version> 
      <configuration> 
       <additionalProjectnatures> 
        <projectnature>org.springframework.ide.eclipse.core.springnature</projectnature> 
       </additionalProjectnatures> 
       <additionalBuildcommands> 
        <buildcommand>org.springframework.ide.eclipse.core.springbuilder</buildcommand> 
       </additionalBuildcommands> 
       <downloadSources>true</downloadSources> 
       <downloadJavadocs>true</downloadJavadocs> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.5.1</version> 
      <configuration> 
       <source>1.6</source> 
       <target>1.6</target> 
       <compilerArgument>-Xlint:all</compilerArgument> 
       <showWarnings>true</showWarnings> 
       <showDeprecation>true</showDeprecation> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>exec-maven-plugin</artifactId> 
      <version>1.2.1</version> 
      <configuration> 
       <mainClass>org.test.int1.Main</mainClass> 
      </configuration> 
     </plugin> 
    </plugins> 
    <finalName>${project.artifactId}</finalName> 
</build> 

+0

попробовать добавить библиотеки в Lib папку под веб-инф –

+0

(Я едва могу что-то увидеть на своем мобильном телефоне). Убедитесь, что EE SDK определяется как зависимость для вашего проекта в области «предоставлено». THEN: Где возникает ошибка сборки? В сборке maven, где-то в вашей среде IDE или во время выполнения при попытке получить доступ к вашему приложению? – JBA

+0

Ошибка возникает во время компиляции в IDE. Как включить зависимость EE SDK? – user3362080

ответ

69

Добавление сервера Tomcat в среде выполнения сервера будет выполнять работу:

Project Properties-> Java Build Path-> Add Library -> Select "Server Runtime" from the list-> Next->Select "Apache Tomcat"-> Finish 
+0

Это не работает для меня. Вы можете помочь? – Greyshack

+0

Это решение не работает для My Eclipse Blue, хотя я добавил сервер приложений веб-сферы в качестве моей целевой среды выполнения. –

+0

Это не сработало даже для меня. Я выбрал сервер Glashfish, но я получил эту ошибку. – MAC

6

Добавление ниже зависимости в pom.xml, работал для меня.

<dependency> 
<groupId>javax.servlet</groupId> 
<artifactId>servlet-api</artifactId> 
<version>2.5</version> 
</dependency> 
+0

сперва я добавил 2.4. Но eclipse жаловался в файле index.jsp с красным крестом с надписью «javax-servlet-http-httpservlet-was-not-found». Когда я изменил его на 2.5, красный крест исчез. – Rumel

3

Я тоже получил ту же ошибку, как указано ниже:

The superclass “javax.servlet.http.HttpServlet” was not found on the Java Build Path.

Я последовал за этими шагами, чтобы решить эту проблему:

  1. Щелкните правой кнопкой мыши по проекту
  2. Выберите Свойства
  3. Выбрать гранты проекта
  4. Выберите Apache Tomcat в качестве сервера времени выполнения
  5. Нажмите OK
1

добавить сервлет-апите банку файла, который присутствует в Lib папки под TOMCAT папки. Вы можете сделать это следующим образом: Project -> properties -> java build path -> under libraries щелкните добавить внешние банки после этого перейдите в проект -> clean -> build all. Это сработало для меня.

0

Добавить файл servlet-api.jar, который находится в папке lib под папкой tomcat. Вы можете сделать это, используя следующие шаги:

1.Select свойства проекта
2.Select Java Build Path
3.Select Библиотеки
4.Select Внешние Jars
5.Select сервлет-api.jar
6. Применить & Хорошо.

Проблема должна быть решена после этих шагов.

2

для Maven проекта, вы должны добавить эту зависимость

<dependency> 
      <groupId>javax</groupId> 
      <artifactId>javaee-web-api</artifactId> 
      <version>6.0</version> 
      <scope>provided</scope> 
</dependency> 
1

я наткнулся на тот же вопрос. Я попытался добавить сервер в «Runtime сервера», но, к сожалению, это не сработало для меня. Что для меня работало, Я добавилjavax.servlet-api-3.0.1.jarфайл в пути построения. С другой стороны, если это проект Maven, добавьте зависимость для этого файла jar. Это определенно сработает.

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

0

Добавление сервера Tomcat в среде выполнения сервера будет выполнять работу:

щелкните правой кнопкой мыши проект и чем;

Свойства проекта → Целевые Runtimes → Выбрать/Проверить «Apache Tomcat» → Закончить.

0

У меня была эта же проблема, и еще пару человек сообщили о существующем проекте maven.

У меня были соответствующие зависимости на месте, и я мог видеть банку под зависимостями maven, однако проект был неправильно введен в затмение.

Мне пришлось удалить проект, снова клонировать из git, а затем импортировать проект в качестве существующего проекта maven.

Это решило проблему в этой теме и несколько других вопросов, которые у меня были. Более подробную информацию о решении можно найти здесь: Maven Project in Eclipse `org.springframework cannot be resolved to a type` from target path

0

Всегда проверяйте, если ваши ява файлы в SRC/главная/Java, а не на какой-то другой каталог пути.

+0

Файлы Java должны находиться в папках, соответствующих имени пакета ... не уверены, что ваши ответы будут работать таким образом. – GhostCat

0

Попробуйте это - добавить Tomcat во время выполнения

+1

Почему вы его цитировали? –

0

Для Ant проекта:

Убедитесь, у вас есть сервлет-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> 

Другой способ сделать это: обновить фасет проекта, чтобы подобрать правильный сервер.

Установите этот флажок в этом месте:

Проект → Свойства → Target Runtimes → Apache Tomcat (любой сервер)

0

Ваша система может иметь много различных версий TOMCAT. Вы можете попытаться решить эту проблему.

Щелкните правой кнопкой мыши на проекте затем выберите Свойства, выберите Грани Project и на правой части, выберите правильные версии Apache Tomcat, как Runtimes и нажмите кнопку ОК