Ich habe ein Projekt von Maven Integration in Eclipse erstellt. Alle funktionieren einwandfrei, aber im Arbeitsbereich in allen JSP-Dateien haben diese:
The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
Zum ersten String wo platzieren:
<%@ page language="Java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Wenn ich ein grundlegendes dynamisches Webprojekt und JSP erstelle, ist alles in Ordnung, keine Fehler.
Fügen Sie zuerst eine Laufzeit hinzu und wählen Sie Projekteigenschaften aus. Überprüfen Sie dann den Servernamen auf der Registerkarte "Runtimes" (Laufzeiten), wie in der Abbildung dargestellt.
Fügen Sie servlet-api-3.1.jar
in Ihre Abhängigkeiten ein.
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'
}
Projekt → Eigenschaften → Solllaufzeiten → Apache Tomcat hat für mich gearbeitet. Unter Facetten befinden sich keine Ziellaufzeiten (Ich bin in Eclipse v4.2 (Juno)).
Für ein Ameisenprojekt:
Stellen Sie sicher, dass sich servlet-api.jar im Ordner lib
befindet.
Für ein Maven-Projekt:
Stellen Sie sicher, dass Sie die Abhängigkeit in POM.xml
hinzugefügt haben.
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
Eine andere Möglichkeit besteht darin: Aktualisieren Sie die Projektfacetten, um den richtigen Server auszuwählen.
Aktivieren Sie dieses Kontrollkästchen an dieser Stelle:
Projekt → Eigenschaften → Ziellaufzeiten → Apache Tomcat (jeder Server)
Projekt → Eigenschaften → Solllaufzeiten → * Apache Tomcat hat für mich funktioniert. Unter Facets gibt es keine Ziellaufzeiten (I'm on Eclipse v4.4 (Luna)).
Das Hinzufügen des Tomcat-Servers zur Server-Laufzeit erledigt die Aufgabe:
Projekteigenschaften → Ziellaufzeiten → Wählen Sie Ihren Server aus der Liste aus. " JBoss Runtime "→ Finish
Im Falle von Apache können Sie Apache Runtime auswählen.
Diese Schritte können Ihnen wirklich helfen:
Wenn Sie keinen Server installiert haben, müssen Sie die folgenden Schritte ausführen:
Menü Fenster → Einstellungen → Server ausgeben → Laufzeitumgebung → Hinzufügen → Wählen Sie einen Namen und dann den Apache-Serverpfad, den Sie bereits auf Ihrem PC installiert haben (Sie können auch auf Download und Installation klicken) → Finish → OK
Ref # für mehr Informationen hier klicken
Fügen Sie den Tomcat-Server hinzu:
Projekteigenschaften → Java-Erstellungspfad → Bibliothek hinzufügen → Wählen Sie "Server Runtime" aus der Liste * → Weiter → Wählen Sie "Apache Tomcat" → Finish
Ref # Diese Antwort
Fügen Sie einfach diese Abhängigkeiten zu Ihrer pom.xml
-Datei hinzu:
<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>
Das Hinzufügen des Tomcat-Servers zur Server-Laufzeit erledigt die Aufgabe:
Projekteigenschaften → Java Build Path → Add Library → Select "Server Runtime" aus der Liste → Next → Select "Apache Tomcat" → Fertig stellen.
Projekt auswählen → Eigenschaften → Projektfacetten → Ziellaufzeiten → VMware Server.
Es hat bei mir funktioniert.
Wenn Sie Maven nicht verwenden, legen Sie einfach die Datei javax.servlet-api.jar in Ihrem Projektordner lib ab.
Da dies nicht beantwortet wird, schätze ich, dass etwas anderes als Maven-Abhängigkeiten mit dem Ops-Build nicht in Ordnung sind.
Obwohl ich Maven nicht benutze, habe ich von Zeit zu Zeit das gleiche Problem, wenn ich meine Entwicklungsumgebung von svn aus neu erstelle, und ich vergesse immer, warum und muss es herausfinden. Leider scheint dies ein Problem mit Eclipse zu sein.
Ich bin in der Lage, alle derartigen Fehler aus einmal funktionierenden Projekten zu entfernen, indem ich nur eines der dynamischen Webprojekte oder nur von Tomcat abhängige Projekte auswähle und eine Abhängigkeit in der Erstellungsreihenfolge verschiebe. Dies scheint zu erzwingen, dass alle Projekte ordnungsgemäß neu erstellt werden, und alle Fehler werden dann behoben.
Klicken Sie mit der rechten Maustaste auf ein Webprojekt und wählen Sie "Erstellungspfad" -> "Erstellungspfad konfigurieren". Gehen Sie zur Registerkarte "Bestellen und Exportieren", wählen Sie eine Bibliothek oder einen Glaseintrag aus und verschieben Sie ihn nach oben oder unten. Ich habe die JRE-Systembibliothek verwendet und sie nach oben verschoben.
Klicken Sie auf OK, und das ganze Rot verschwindet!
Und wenn aus irgendeinem Grund nichts funktioniert, erstellen Sie es über die Befehlszeile:
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