This question already has answers here: How do I import the javax.servlet / jakarta.servlet API in my Eclipse project? (16 answers) Closed 5 years ago.
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.
provided
dependency i.e. that it is not shipped with your web project.
Add a runtime first and select project properties. Then check the server name from the 'Runtimes' tab as shown in the image.
https://i.stack.imgur.com/U46s9.png
Include servlet-api-3.1.jar
in your dependencies.
Maven
Gradle configurations { provided } sourceSets { main { compileClasspath += configurations.provided } } dependencies { provided 'javax.servlet:javax.servlet-api:3.1.0' }
Include servlet-api-x.y.jar in your dependencies.
I though 3.0 was the latest.
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)).
Adding the Tomcat server in the server runtime will do the job:
Project Properties → Target Runtimes → Select your Server from the list, "JBoss Runtime" → Finish
In case of Apache you can select Apache Runtime.
https://i.stack.imgur.com/9yBnq.png
These steps can really help you:
If you didn't install any server you have to do these steps: Menu Window → Preferences → Expend Server → Runtime environment → Add → choose a name and then choose the Apache server path that you already installed on your PC (you can press download and install too) → Finish → OK
Ref# for more information, click here
Add the Tomcat server: Project Properties → Java Build Path → Add Library → Select "Server Runtime" from the list* → Next → Select "Apache Tomcat" → Finish
Ref# This answer
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>
Adding the Tomcat server in the server runtime will do the job:
Project properties → Java Build Path → Add Library → Select "Server Runtime" from the list → Next → Select "Apache Tomcat" → Finish.
Select project → Properties → Project Facets → Target Runtimes → VMware Server.
It worked for me.
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!
If you are not using Maven, just drop the javax.servlet-api.jar in your project lib folder.
In case of JBoss... right click on project → Build Java path → add external JAR files.
Then browse to jboss-folder → Common → lib → servlet-api.jar
. . Click OK, refresh the project, and run it...
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
Success story sharing