De import javax.servlet kan niet worden opgelost

Ik probeer eclipsevoor Java EEte gebruiken om webapplicaties te ontwikkelen.

Ik moet Tomcatgebruiken als mijn server. Ik heb Tomcat gedownload en het werkt. Maar mijn programma compileert niet.

Ik krijg de volgende foutmelding:

De import javax.servlet kan niet worden opgelost.

Wat moet ik doen?


Antwoord 1, autoriteit 100%

Je moet de Servlet-API aan je klassenpad toevoegen. In Tomcat 6.0 staat dit in een JAR met de naam servlet-api.jarin de map libvan Tomcat. Je kunt ofwel een verwijzing naar die JAR toevoegen aan het klassenpad van het project, of een kopie van de JAR in je Eclipse-project plaatsen en het vanaf daar aan het klassenpad toevoegen.

Als u de JAR in de map libvan Tomcat wilt laten staan:

  • Klik met de rechtermuisknop op het project, klik op Eigenschappen.
  • Kies Java-bouwpad.
  • Klik op het tabblad Bibliotheken
  • Klik op Externe JAR’s toevoegen…
  • Blader om servlet-api.jarte vinden en selecteer het.
  • Klik op OKom het buildpad bij te werken.

Of, als u de JAR naar uw project kopieert:

  • Klik met de rechtermuisknop op het project, klik op Eigenschappen.
  • Kies Java-bouwpad.
  • Klik op JAR’s toevoegen…
  • Zoek servlet-api.jarin uw project en selecteer het.
  • Klik op OKom het bouwpad bij te werken.

Antwoord 2, autoriteit 45%

Als u nog niet klaar bent, moet u Tomcat integreren in uw Servers-weergave. Klik daar met de rechtermuisknop en kies Nieuw > Server. Selecteer de juiste Tomcat-versie uit de lijst en voltooi de wizard.

Wanneer u een nieuw Dynamic Web Projectaanmaakt, moet u de geïntegreerde server in de lijst selecteren als Targeted Runtimein de eerste wizardstap.

Of als u een bestaand Dynamic Web Projectheeft, kunt u dit instellen/wijzigen in Targeted Runtimesin de projecteigenschappen. Eclipse zal dan automatisch al zijn bibliotheken aan het bouwpad toevoegen (zonder een kopie ervan in het project te hebben!).


Antwoord 3, autoriteit 8%

Je moet het bereik van de afhankelijkheid instellen op ‘meegeleverd’ in je POM.

http://maven.apache.org/guides/introduction/introduction -to-dependency-mechanism.html#Dependency_Scope

<dependency>  
  <groupId>javax.servlet</groupId>
  <artifactId>servlet-api</artifactId>
  <version>2.4</version>
  <scope>provided</scope>
</dependency>

Dan komt alles goed.


Antwoord 4, autoriteit 7%

Ik had hetzelfde probleem omdat mijn “Dynamic Web Project” geen verwijzing had naar de geïnstalleerde server die ik wilde gebruiken en daarom geen verwijzing had naar de Servlet API die de server biedt.

Volgende stappen hebben het opgelost zonder een extra Servlet-API toe te voegen aan het Java Build Path (Eclipse-versie: Luna):

  • Klik met de rechtermuisknopop uw “Dynamic Web Project”
  • Selecteer Eigenschappen
  • Selecteer Projectfacettenin de lijst aan de linkerkant van de wizard “Eigenschappen”
  • Aan de rechterkant van de wizard zou je een tabblad moeten zien met de naam Runtimes. Selecteer het tabblad Runtime en vink de server aanwaarop u de servlet wilt laten draaien.

Bewerken:als er geen server wordt vermeld, kunt u een nieuwe maken op het tabblad Runtimes


Antwoord 5, autoriteit 6%

Voeg de servlet-api.jartoe aan je klassenpad. Je kunt het uit de lib-map van Tomcat halen.


Antwoord 6, autoriteit 5%

Toevoegen aan pom.xml

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
</dependency>

Antwoord 7, autoriteit 3%

Als je deze compilatiefout krijgt, betekent dit dat je de servlet-jar niet hebt opgenomen in het klassenpad. De juiste manier om deze jar op te nemen, is door de Server Runtime-jar toe te voegen aan uw eclipse-project. Volg de onderstaande stappen om dit probleem op te lossen:
U kunt de servlet-api.jar hier downloaden
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.

Antwoord 8

Had hetzelfde probleem in Eclipse. Om de een of andere reden had ik het bestand servlet.jar niet in mijn buildpad. Wat ik uiteindelijk deed, was het kopiëren van een “lib” -map van een ander project van mij naar het project waar ik aan werkte, vervolgens handmatig naar die map gaan en het servlet.jar-bestand toevoegen aan het buildpad (de optie verschijnt als je gelijk hebt- klik op het bestand in de projectverkenner).

Other episodes