web-dev-qa-db-fra.com

La superclasse "javax.servlet.http.HttpServlet" est introuvable dans le chemin de construction Java.

J'ai un projet créé par l'intégration Maven dans Eclipse. Tout fonctionne bien, mais dans l'espace de travail de tous les fichiers JSP ont ceci:

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

À la première chaîne où place:

<%@ page language="Java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

Lorsque je crée un projet Web dynamique de base et JSP in - tout va bien, pas d'erreur.

401
disable1992

Ajoutez d'abord un environnement d'exécution et sélectionnez les propriétés du projet. Ensuite, vérifiez le nom du serveur à partir de l'onglet "Runtimes" comme indiqué dans l'image.

Select runtime from Project Facets as shown the in image

615
Ajil Mohan

Incluez servlet-api-3.1.jar dans vos dépendances.

  • 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'
    }
    
237
user1907906

Projet → Propriétés Runtimes cibles Apache Tomcat a travaillé pour moi. Il n'y a pas de temps d'exécution cible sous Facettes (je suis sur Eclipse v4.2 (Juno)).

103
DMF

Pour un projet Ant:

Assurez-vous que vous avez servlet-api.jar dans le dossier lib.

Pour un projet Maven:

Assurez-vous que vous avez la dépendance ajoutée dans POM.xml.

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

ne autre façon de le faire est: Mettez à jour les facettes du projet pour choisir le bon serveur.

Cochez cette case à cet endroit:

Projet → Propriétés Runtimes cibles → Apache Tomcat (n'importe quel serveur)

46
Sireesh Yarlagadda

Projet → Propriétés Runtimes cibles → * Apache Tomcat a fonctionné pour moi. Il n'y a pas de temps d'exécution cible sous Facettes (je suis sur Eclipse v4.4 (Luna)).

29
Burak Durmuş

L'ajout du serveur Tomcat dans l'exécution du serveur fera l'affaire:

Propriétés du projet Runtimes cibles → Sélectionnez votre serveur dans la liste, " JBoss Runtime "→ Finish

Dans le cas d'Apache, vous pouvez sélectionner Apache Runtime.

Enter image description here

20
Varun

Ces étapes peuvent vraiment vous aider:

  1. Si vous n'avez pas installé de serveur, vous devez suivre ces étapes:

    Menu Fenêtre Préférences Dépendre du serveur Environnement d'exécution Ajouter → choisissez un nom puis choisissez le chemin du serveur Apache que vous avez déjà installé sur votre PC (vous pouvez appuyer sur le bouton Télécharger et installer également) → Finish → OK

Ref # pour plus d'informations, cliquez ici

  1. Ajoutez le serveur Tomcat:

    Propriétés du projet Chemin de génération Java Ajouter une bibliothèque → Sélectionnez "Server Runtime" dans la liste * → Suivant → Sélectionnez "Apache Tomcat" → Finish

Ref # Cette réponse

17
Chris Sim

Ajoutez simplement ces dépendances à votre fichier pom.xml:

<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>
14
A. El Idrissi

Ajouter le serveur Tomcat à son exécution fera le travail suivant:

Propriétés du projet → chemin de construction JavaAjouter une bibliothèquesélectionnez "Runtime du serveur" dans la liste → Suivant → Sélectionnez "Apache Tomcat" → Terminer.

7
adarsh hegde

Sélectionnez un projet → PropriétésFacettes du projetDurée d'exécution cibleServeur VMware.

Cela a fonctionné pour moi.

5
Anant Pathak

Si vous n'utilisez pas Maven, déposez simplement le fichier javax.servlet-api.jar dans le dossier lib de votre projet.

2
Mahder

Comme cela reste sans réponse, je suppose que quelque chose d'autre que les dépendances Maven ne va pas avec la construction des opérations.

Bien que je n’utilise pas Maven, j’ai le même problème de temps en temps lorsque je recrée mon environnement de développement à partir de svn, j’oublie toujours pourquoi et je dois le comprendre. Malheureusement, il semble que ce soit un problème avec Eclipse.

Je suis en mesure de supprimer toutes ces erreurs de projets ayant déjà fonctionné en ne sélectionnant qu'un seul des projets Web dynamiques, ou uniquement des projets dépendants de Tomcat, et de déplacer une dépendance dans l'ordre de génération. Cela semble forcer tous les projets à se reconstruire correctement et toutes les erreurs sont ensuite résolues.

Faites un clic droit sur un projet Web, sélectionnez "chemin de construction" -> "Configurer le chemin de construction". Allez dans l'onglet "Commander et exporter", puis choisissez une bibliothèque ou une entrée de fichier JAR et déplacez-la vers le haut ou le bas. J'ai utilisé la bibliothèque système JRE et l'ai déplacée vers le haut.

Cliquez sur OK, et tout ce rouge disparaît!

2
kas

Et si rien ne fonctionne, peu importe la raison, construisez-le à partir de la ligne de commande:

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
0
Puneet Pandey