“超类”;“javax.servlet.http.HttpServlet”;在Java生成路径上找不到
我有一个由Maven integration在Eclipse中创建的项目。所有这些都可以正常工作,但在所有JSP文件的工作空间中都有以下内容:“超类”;“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
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” }
这对我很有用。项目→ 性质→ 目标运行时→ 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
这些步骤确实可以帮助您:
参考《蚂蚁计划》: 确保在
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来清除此错误