The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path [duplicate]
I have a project created by Maven integration in Eclipse. All work fine, but in the work space in all JSP files have this:
The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
To the first string where place:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
When I create a basic dynamic web project and JSP in - all is fine, no errors.
Add a runtime first and select project properties. Then check the server name from the 'Runtimes' tab as shown in the image.
Include servlet-api-3.1.jar
in your dependencies.
-
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' }
Project → Properties → Target Runtimes → Apache Tomcat worked for me. There is no Target Runtimes under Facets (I'm on Eclipse v4.2 (Juno)).
For an Ant project:
Make sure, you have servlet-api.jar in the lib
folder.
For a Maven project:
Make sure, you have the dependency added in POM.xml
.
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
Another way to do it is: Update the project facets to pick up the right server.
Check this box in this location:
Project → Properties → Target Runtimes → Apache Tomcat (any server)
Project → Properties → Target Runtimes → *Apache Tomcat worked for me. There is no Target Runtimes under Facets (I'm on Eclipse v4.4 (Luna)).