超类“javax.servlet.http.HttpServlet"在Java构建路径中没有找到

我有一个由Maven集成在Eclipse中创建的项目。所有的工作都很好,但是在工作空间中所有的JSP文件都有这个:

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

到第一个字符串的位置:

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>

当我创建一个基本的动态web项目和JSP时,一切都很好,没有错误。

879956 次浏览

在你的依赖项中包含servlet-api-3.1.jar

  • < p > Maven

    <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
    <scope>provided</scope>
    </dependency>
    
  • Gradle

    configurations {
    provided
    }
    sourceSets {
    main { compileClasspath += configurations.provided }
    }
    dependencies {
    provided 'javax.servlet:javax.servlet-api:3.1.0'
    }
    

选择项目→属性项目方面目标运行时VMware服务器

这对我很管用。

Project→属性目标运行时Apache Tomcat适合我。facet下没有目标运行时(我在Eclipse  v4.2 (Juno)上)。

由于这个问题没有得到回答,我猜测除了Maven依赖之外,ops构建还有其他问题。

虽然不使用Maven,但在从svn重新创建开发环境时,我经常会遇到同样的问题,而且我总是忘记原因,必须找出原因。不幸的是,这似乎是Eclipse的一个问题。

我可以通过选择一个动态的web项目,或者仅仅是tomcat相关的项目,并在构建顺序中移动依赖项,从而从曾经工作的项目中删除所有此类错误。这似乎迫使所有项目正确地重新构建,然后解决所有错误。

右键单击web项目,选择“构建路径”->“配置构建路径” 转到“Order and Export”选项卡,然后选择一个库或jar条目并上下移动它。我使用JRE系统库并将其移到顶部

点击OK,所有的红色都消失了!

如果您不使用Maven,只需将javax.servlet-api.jar放到项目库文件夹中。

首先添加一个运行时并选择项目属性。然后从'Runtimes'选项卡检查服务器名称,如图所示。

Select runtime from Project Facets as所示in image

Project→属性目标运行时→*Apache Tomcat为我工作。facet下没有目标运行时(我在Eclipse  v4.4 (Luna)上)。

只需将这些依赖项添加到你的pom.xml文件中:

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


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

在服务器运行时添加Tomcat服务器将完成以下工作:

项目属性→列表中的Java构建路径添加库选择“服务器运行时”下一个→选择“Apache Tomcat”→完成

对于JBoss…右键单击项目→构建Java路径→添加外部JAR文件。

然后浏览到jboss-folder→常见的自由→servlet-api.jar

< p >。 . 点击好吧,刷新项目,并运行它

在服务器运行时添加Tomcat服务器将完成以下工作:

项目属性目标运行时→从列表中选择你的服务器,"JBoss Runtime"→完成

如果是Apache,可以选择Apache Runtime。

Enter image description here

如果由于某种原因不能工作,则从命令行构建它:

ant -Dj2ee.server.home=D:\apache-tomcat-8.0.23 clean


ant -Dj2ee.server.home=D:\apache-tomcat-8.0.23 compile


ant -Dj2ee.server.home=D:\apache-tomcat-8.0.23 dist

下面这些步骤真的能帮到你:

  1. 如果你没有安装任何服务器,你必须执行以下步骤:

    菜单窗口首选项消耗服务器运行时环境添加→选择一个名称,然后选择你已经在你的PC上安装的Apache服务器路径(你也可以按下载和安装)→完成好吧

Ref # 欲了解更多信息,请点击这里

  1. 添加Tomcat服务器

    项目属性Java构建路径添加库→从列表中选择“Server Runtime”*→下一个→选择“Apache Tomcat”→完成

Ref # 这个答案

对于Ant项目:

确保在lib文件夹中有servlet-api.jar。

对于Maven项目:

确保在POM.xml中添加了依赖项。

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

另一种方法是:更新项目facet以获取正确的服务器。

在此位置选中此框:

项目→属性目标运行时→Apache Tomcat(任意服务器)