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

JavaEclipseMavenJsp

Java Problem Overview


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.

Java Solutions


Solution 1 - Java

Add a runtime first and select project properties. Then check the server name from the 'Runtimes' tab as shown in the image.

Select runtime from Project Facets as shown the in image

Solution 2 - Java

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'
      }
    

Solution 3 - Java

Project → PropertiesTarget RuntimesApache Tomcat worked for me. There is no Target Runtimes under Facets (I'm on Eclipse v4.2 (Juno)).

Solution 4 - Java

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 → PropertiesTarget Runtimes → Apache Tomcat (any server)

Solution 5 - Java

Project → PropertiesTarget Runtimes → *Apache Tomcat worked for me. There is no Target Runtimes under Facets (I'm on Eclipse v4.4 (Luna)).

Solution 6 - Java

Adding the Tomcat server in the server runtime will do the job:

Project PropertiesTarget Runtimes → Select your Server from the list, "JBoss Runtime" → Finish

In case of Apache you can select Apache Runtime.

Enter image description here

Solution 7 - Java

These steps can really help you:

  1. If you didn't install any server you have to do these steps:

    Menu WindowPreferencesExpend ServerRuntime environmentAdd → choose a name and then choose the Apache server path that you already installed on your PC (you can press download and install too) → FinishOK

Ref# for more information, click here

  1. Add the Tomcat server:

    Project PropertiesJava Build PathAdd Library → Select "Server Runtime" from the list* → Next → Select "Apache Tomcat" → Finish

Ref# This answer

Solution 8 - Java

Just add these dependencies to your pom.xml file:

<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>

Solution 9 - Java

Adding the Tomcat server in the server runtime will do the job:

Project properties → Java Build PathAdd LibrarySelect "Server Runtime" from the list → Next → Select "Apache Tomcat" → Finish.

Solution 10 - Java

Select project → PropertiesProject FacetsTarget RuntimesVMware Server.

It worked for me.

Solution 11 - Java

As this is unanswered, I am guessing something other than Maven dependencies are wrong with the ops build.

While not using Maven, I have the same problem from time to time when re-creating my development environment from svn, and I always forget why and have to figure it out. Unfortunately it seems this is a problem with Eclipse.

I am able to remove all such errors from once working projects by picking just one of the dynamic web projects, or just tomcat dependent projects, and move a dependency in the build order. This seems to force all projects to rebuild properly and all of the errors are then resolved.

Right click on a web project, select "build Path" -> "Configure Build Path". Go to the tab "Order and Export", then pick a library or jar entry and move it up or down. I used the JRE System Library and moved it to the top.

Click OK, and all that red goes away!

Solution 12 - Java

If you are not using Maven, just drop the javax.servlet-api.jar in your project lib folder.

Solution 13 - Java

In case of JBoss... right click on project → Build Java path → add external JAR files.

Then browse to jboss-folder → Commonlib → servlet-api.jar

. . Click OK, refresh the project, and run it...

Solution 14 - Java

And if nothing works by whatever reason, build it from the command line:

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

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questiondisable1992View Question on Stackoverflow
Solution 1 - JavaAjil MohanView Answer on Stackoverflow
Solution 2 - Javauser1907906View Answer on Stackoverflow
Solution 3 - JavaDMFView Answer on Stackoverflow
Solution 4 - JavaSireesh YarlagaddaView Answer on Stackoverflow
Solution 5 - JavaBurak DurmuşView Answer on Stackoverflow
Solution 6 - JavaVarunView Answer on Stackoverflow
Solution 7 - JavaChris SimView Answer on Stackoverflow
Solution 8 - JavaA. El IdrissiView Answer on Stackoverflow
Solution 9 - Javaadarsh hegdeView Answer on Stackoverflow
Solution 10 - JavaAnant PathakView Answer on Stackoverflow
Solution 11 - JavakasView Answer on Stackoverflow
Solution 12 - JavaMahderView Answer on Stackoverflow
Solution 13 - JavashashankView Answer on Stackoverflow
Solution 14 - JavaPuneet PandeyView Answer on Stackoverflow