“超类”;“javax.servlet.http.HttpServlet”;在Java生成路径上找不到

“超类”;“javax.servlet.http.HttpServlet”;在Java生成路径上找不到,java,eclipse,jsp,maven,web,Java,Eclipse,Jsp,Maven,Web,我有一个由Maven integration在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" pageEncod

我有一个由Maven integration在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时,一切正常,没有错误。

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

  • Maven

    
    javax.servlet
    javax.servlet-api
    3.1.0
    假如
    
  • Gradle

    配置{
    假如
    }
    源集{
    主{compileClasspath+=configurations.provided}
    }
    依赖关系{
    提供了“javax.servlet:javax.servlet api:3.1.0”
    }
    
选择项目→ 性质→ 项目方面→ 目标运行时→ VMware服务器


这对我很有用。

项目→ 性质→ 目标运行时→ Apache Tomcat为我工作。Facets下没有目标运行时(我在(Juno))。

由于这是一个未解之谜,我猜ops构建中除了Maven依赖之外还有其他问题

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

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

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


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

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

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


项目→ 性质→ 目标运行时→ *Apache Tomcat为我工作。Facets下没有目标运行时(我在(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>

javax.servlet
javax.servlet-api
3.0.1
假如
javax.servlet.jsp
javax.servlet.jsp-api
2.2.1
假如

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


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

如果是JBoss…右键单击project→ 构建Java路径→ 添加外部JAR文件

然后浏览到jboss文件夹→ 普通的→ 解放党→ servlet-api.jar

。 .
单击确定,刷新项目,然后运行它…

在服务器运行时添加Tomcat服务器将完成此任务:

项目属性→ 目标运行时→ 从“JBoss运行时”列表中选择您的服务器→ 完成

对于Apache,您可以选择Apache运行时


如果由于任何原因都不起作用,请从命令行构建它:

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

这些步骤确实可以帮助您:

  • 如果未安装任何服务器,则必须执行以下步骤:

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

  • 参考号#

  • 添加Tomcat服务器:

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


  • 参考《蚂蚁计划》

    确保在
    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>
    
    
    javax.servlet
    javax.servlet-api
    3.1.0
    假如
    
    另一种方法是:更新项目方面以选择正确的服务器

    在此位置选中此框:


    计划→ 性质→ 目标运行时→ Apache Tomcat(任何服务器)

    您需要在构建路径中添加库。您可能错过了pom.xml中的javax.servlet-api依赖项。请确保您将其添加为
    提供的
    依赖项,即它未随web项目一起提供。更好的答案是
    将servlet-api-x.y.jar包含在您的依赖项中。
    i尽管3.0是最新版本。错误已经消失,但是在另一台电脑上我不需要这样做。这台电脑有什么不同?只取决于Eclipse版本,开普勒-错误,朱诺-ok。要使用的Servlet API版本由容器决定。所以你需要知道哪个是traget系统。为了避免类路径问题,不要将ServletAPI与我们的工件一起提供,这样就可以在pom中标记“提供的”依赖项。您能详细说明这是为什么吗?目标运行时与丢失的http servlet如何连接?我对幕后发生的事情非常感兴趣。这个错误表明http servlet在项目类路径中不可用,一旦我们将目标运行时添加到项目中,http servlet将在项目类路径中可用。我在Eclipse Mars的运行时中没有Tomcat选项,在窗口>首选项>服务器>运行时环境>添加>ApacheTomcat>选择反安装目录>安装中解决了这个问题。这太过时了。在大多数情况下,您使用maven tomcat6或7插件。在不使用maven的项目中,您可以通过在Eclipse项目浏览器->属性->Java构建路径中右键单击项目名称并选中Apache Tomcat serv来清除此错误