web-dev-qa-db-fra.com

le package javax.servlet.http n'existe pas

J'ai le jre7 et jdk1.7.0 installé avec le Tomcat 7.0 mais il montre cette erreur. servlet.http n'est pas le seul qui "n'existe pas", il existe également d'autres composants (servlet.).

Quelqu'un peut-il m'aider avec ça?

UPDATE: Cette erreur se produit lorsque j'essaie la commande suivante: Javac -classpath servlet-api.jar WebTest.Java

19
Andrew

Votre variable CLASSPATH ne pointe pas vers le répertoire contenant les classes javax. La variable CLASSPATH spécifie où le compilateur Java doit rechercher les ressources de fichier de classe Java. S'il ne sait pas chercher dans le répertoire javax, il ne trouvera jamais le ou les fichiers que vous recherchez.

16
ashutosh raina

Si vous travaillez avec le projet maven, ajoutez la dépendance suivante à votre pom.xml.

<dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.0.1</version>
        <scope>provided</scope>
</dependency>
21
Swalih

Si vous utilisez la console de commande pour compiler le servlet, vous devez inclure le /lib/servlet-api.jar de Tomcat dans le chemin de classe de compilation.

javac -cp .:/path/to/Tomcat/lib/servlet-api.jar com/example/MyServlet.Java

(utilisez ; au lieu de : comme séparateur de chemin dans Windows)

Si vous utilisez un environnement de développement intégré, vous devez alors intégrer Tomcat dans IDE et le référencer en tant que cible d'exécution dans le projet. Si vous utilisez Eclipse en tant qu'EDI, consultez également cette section pour plus de détails: Comment importer l'API javax.servlet dans mon projet Eclipse?

17
BalusC

Sur * nix, essayez:

javac -cp $CLASSPATH:$CATALINA_HOME/lib/servlet-api.jar Filename.Java

Ou sous Windows, essayez:

javac -cp %CLASSPATH%;%CATALINA_HOME%\lib\servlet-api.jar Filename.Java
5
roartechs

Si vous utilisez Ant et essayez de construire, vous devez:

  1. Spécifiez l'emplacement de Tomcat avec <property name="Tomcat-home" value="C:\xampp\Tomcat" />

  2. Ajoutez les bibliothèques Tomcat au chemin déjà défini pour les fichiers jar en 

    <path id="libs"> <fileset includes="*.jar" dir="${WEB-INF}/lib" /> <fileset includes="*.jar" dir="${Tomcat-home}/bin" /> <fileset includes="*.jar" dir="${Tomcat-home}/lib" /> </path>

4
iltaf khalid

Cette erreur se produit lorsque vous compilez un programme Java à l'aide de classes prenant en charge l'API Servlet. Le compilateur recherche la bibliothèque (incluse dans un fichier .jar) à l'aide de CLASSPATH. Vous pouvez spécifier cela lorsque vous compilez à l'aide des options -classpath ou -cp comme indiqué dans les autres réponses, mais vous devez configurer votre environnement pour définir le chemin d'accès aux classes en fonction des besoins.

Définissez la variable d'environnement CLASSPATH pour référencer l'emplacement de servlet-api.jar, qui dépend de votre configuration (système d'exploitation, mode d'installation, etc.). 

En supposant que vous utilisiez Tomcat et que vous l’ayez installé de l’une des 20 manières possibles, les API utilisées par les servlets seront installées sur votre système, en fonction de l’emplacement où Tomcat est installé. Pour des raisons historiques, Tomcat est également connu sous le nom de "Catalina". Vous pouvez donc utiliser la commande "catalina" pour exécuter certaines commandes. Seul, il signalera, entre autres choses, le CATALINA_BASE. Par exemple, sur mon Mac utilisant Tomcat installé à l’aide de l’homebrew, c’est 

Using CATALINA_BASE:   /usr/local/Cellar/Tomcat/8.5.9/libexec

L'emplacement des bibliothèques de servlets Tomcat se trouve sous le répertoire lib . Définissez CATALINA_BASE, puis définissez CLASSPATH en utilisant la base comme point de départ. Par exemple, pour Linux ou OSX, vous pouvez définir ceci dans .profile ou .bash_profile de la manière suivante:

export CATALINA_BASE=/usr/local/Cellar/Tomcat/8.5.9/libexec
export CLASSPATH=$CATALINA_BASE/lib/servlet-api.jar:$CLASSPATH

Quittez le terminal/Shell et revenez pour exécuter le profil. Vous devriez pouvoir voir que la variable est définie en utilisant la commande echo, par exemple.

echo $CLASSPATH

ou sous Windows

echo %CLASSPATH%

S'il affiche le chemin complet du fichier jar `javac WebTest.Java ', compilez votre classe.

D’autres réponses sont correctes - configurez votre IDE (Eclipse, IntelliJ) pour en savoir plus sur Tomcat ou construisez-vous avec Maven pour économiser la douleur.

2
Tom Harrison Jr

Vous devez ajouter la classpath pour compiler. Dans Tomcat 

classpath="C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib\servlet-api.jar".

Donc la commande est 

javac -classpath "c:\Program Files\Apache Software Foundation\Tomcat 6.0\lib\servlet-api.jar" yourfile.Java .
0
SwR

La solution qui fonctionne est d'ajouter la dépendance suivante à mon fichier pom.xml.

<dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.0.1</version>
        <scope>provided</scope>
</dependency>
0
Jorge Santos Neill