Der Import javax.servlet kann nicht aufgelöst werden [duplicate]
Lesezeit: 5 Minuten
Schlange
Ich versuche zu verwenden Finsternis zum Java-EE um Webanwendungen zu entwickeln.
Ich muss verwenden Kater als meine Server. Ich habe Tomcat heruntergeladen und es läuft. Aber mein Programm lässt sich nicht kompilieren.
Ich bekomme folgenden Fehler:
Der Import javax.servlet kann nicht aufgelöst werden.
Was muss ich tun?
Richard Furcht
Sie müssen die Servlet-API zu Ihrem Klassenpfad hinzufügen. In Tomcat 6.0 befindet sich dies in einem JAR namens servlet-api.jar bei Tomcat lib Mappe. Sie können entweder einen Verweis auf diese JAR-Datei zum Klassenpfad des Projekts hinzufügen oder eine Kopie der JAR-Datei in Ihr Eclipse-Projekt einfügen und sie von dort aus zum Klassenpfad hinzufügen.
Wenn Sie das JAR in Tomcat’s lassen möchten lib Mappe:
Klicken Sie mit der rechten Maustaste auf das Projekt, klicken Sie auf Eigenschaften.
Wählen Java-Erstellungspfad.
Drücke den Bibliotheken Tab
Klicken Externe JARs hinzufügen…
Durchsuchen, um zu finden servlet-api.jar und wählen Sie es aus.
Klicken OK um den Erstellungspfad zu aktualisieren.
Oder, wenn Sie das JAR in Ihr Projekt kopieren:
Klicken Sie mit der rechten Maustaste auf das Projekt, klicken Sie auf Eigenschaften.
Wählen Java-Erstellungspfad.
Klicken JARs hinzufügen…
Finden servlet-api.jar in Ihrem Projekt und wählen Sie es aus.
Klicken OK um den Erstellungspfad zu aktualisieren.
Eine Kopie eines Servletcontainer-spezifischen JARs haben /WEB-INF/lib würde Ihre Anwendung nicht portierbar machen. Es kann nur auf genau derselben Servermarke/-version und nicht auf anderen Servermarken/-versionen ausgeführt werden. NoClassDefFoundError würde um deinen Kopf fliegen.
– BalusC
7. November 2010 um 22:24 Uhr
Ich habe nie gesagt, dass es rein sollte WEB-INF/lib – nur dass es in das Projekt kopiert werden könnte, damit es dem Erstellungspfad hinzugefügt werden kann. Das bedeutet nicht unbedingt, dass es in den WAR aufgenommen wird.
– Richard Furcht
7. November 2010 um 22:26 Uhr
Trotzdem ist das einfach ungeschickt und nicht der empfohlene Ansatz.
– BalusC
7. November 2010 um 22:29 Uhr
Es ist eine Workaround-Lösung. Die genaue Lösung wird von BalusC unten angegeben.
– Ahmet Karakaya
5. Dezember 2012 um 7:31 Uhr
nichts hat sich beim Hinzufügen von servlet-api.jar geändert, Projekt > sauber hat es funktioniert.
– Kimchoki
7. September 2017 um 6:43 Uhr
Falls noch nicht geschehen, müssen Sie Tomcat in Ihre integrieren Server Aussicht. Klicken Sie dort mit der rechten Maustaste und wählen Sie aus Neu > Server. Wählen Sie die entsprechende Tomcat-Version aus der Liste aus und schließen Sie den Assistenten ab.
Wenn Sie eine neue erstellen Dynamisches Webprojektsollten Sie den integrierten Server aus der Liste als auswählen Gezielte Laufzeit im 1. Assistentenschritt.
Oder wenn Sie eine bestehende haben Dynamisches Webprojektkönnen Sie es einstellen/ändern Gezielte Laufzeiten Eintrag in den Projekteigenschaften. Eclipse fügt dann automatisch alle seine Bibliotheken zum Erstellungspfad hinzu (ohne eine Kopie davon im Projekt zu haben!).
@sage: Eclipse tut das auch für neue Projekte, die nach der Integration des Servers erstellt werden.
– BalusC
12. Februar 2014 um 9:13 Uhr
Funktioniert bei mir nicht, ich habe alles wie du gesagt hast, aber es kann javax.servlet immer noch nicht auflösen (mit Tomcat 8.0.3 als Server)
– Römer
9. März 2014 um 8:10 Uhr
Sie müssen den Umfang der Abhängigkeit in Ihrem POM auf „bereitgestellt“ setzen.
Ich hatte das gleiche Problem, weil mein “Dynamic Web Project” keinen Verweis auf den installierten Server hatte, den ich verwenden wollte, und daher keinen Verweis auf die Servlet-API hatte, die der Server bereitstellt.
Die folgenden Schritte haben es gelöst, ohne dem Java-Build-Pfad eine zusätzliche Servlet-API hinzuzufügen (Eclipse-Version: Luna):
Rechtsklick auf Ihrem “Dynamic Web Project”
Auswählen Eigenschaften
Auswählen Facetten des Projekts in der Liste auf der linken Seite des Assistenten “Eigenschaften”.
Auf der rechten Seite des Assistenten sollten Sie eine Registerkarte mit dem Namen sehen Laufzeiten. Wählen Sie die Registerkarte Runtime und überprüfen Sie den Server Sie möchten das Servlet ausführen.
Bearbeiten: Wenn kein Server aufgeführt ist, können Sie auf der Registerkarte Laufzeiten einen neuen erstellen
Beachten Sie nur, dass für den Fall, dass dieses Problem bei der Verwendung von maven weiterhin auftritt, wir das Projekt nur erneut erstellen müssen, damit es die Änderung aus den Abhängigkeiten erkennt.
– Cuong Vo
23. Mai 2019 um 2:09 Uhr
Bozo
Ergänzen Sie die servlet-api.jar zu deinem Klassenpfad. Sie können es aus dem lib-Ordner von Tomcat nehmen.
Beachten Sie nur, dass für den Fall, dass dieses Problem bei der Verwendung von maven weiterhin auftritt, wir das Projekt nur erneut erstellen müssen, damit es die Änderung aus den Abhängigkeiten erkennt.
– Cuong Vo
23. Mai 2019 um 2:09 Uhr
Varun
Wenn Sie diesen Kompilierungsfehler erhalten, bedeutet dies, dass Sie das Servlet-JAR nicht in den Klassenpfad aufgenommen haben. Der richtige Weg, dieses JAR einzubinden, besteht darin, das Server Runtime-Jar zu Ihrem Eclipse-Projekt hinzuzufügen. Sie sollten die folgenden Schritte ausführen, um dieses Problem zu beheben: Sie können die servlet-api.jar von hier herunterladen http://www.java2s.com/Code/Jar/s/Downloadservletapijar.htm
Save it in directory. Right click on project -> go to properties->Buildpath and follow the steps.
Notiz: Die auf dem Bildschirm angezeigten Gläser sind nicht die richtigen Gläser.
Sie können dem Schritt zum Konfigurieren folgen.
13444800cookie-checkDer Import javax.servlet kann nicht aufgelöst werden [duplicate]yes