web-dev-qa-db-fra.com

java.lang.ClassNotFoundException: HttpServletRequest

Je viens de recevoir Tomcat 7.0.27. J'ai gardé le temps de démarrer Tomcat 45sec. En outre, il fonctionnait bien avec l'ancienne version sur Tomcat. mais en l'exécutant j'obtiens l'erreur suivante:

SEVERE: A child container failed during start
Java.util.concurrent.ExecutionException: org.Apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/VotingApp]]
    at Java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.Java:222)
    at Java.util.concurrent.FutureTask.get(FutureTask.Java:83)
    at org.Apache.catalina.core.ContainerBase.startInternal(ContainerBase.Java:1128)
    at org.Apache.catalina.core.StandardHost.startInternal(StandardHost.Java:782)
    at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:150)
    at org.Apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.Java:1566)
    at org.Apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.Java:1556)
    at Java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.Java:303)
    at Java.util.concurrent.FutureTask.run(FutureTask.Java:138)
    at Java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.Java:886)
    at Java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.Java:908)
    at Java.lang.Thread.run(Thread.Java:680)
Caused by: org.Apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/VotingApp]]
    at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:154)
    ... 7 more
Caused by: Java.lang.NoClassDefFoundError: HttpServletRequest
    at Java.lang.Class.getDeclaredMethods0(Native Method)
    at Java.lang.Class.privateGetDeclaredMethods(Class.Java:2427)
    at Java.lang.Class.getDeclaredMethods(Class.Java:1791)
    at org.Apache.catalina.startup.WebAnnotationSet.getDeclaredMethods(WebAnnotationSet.Java:470)
    at org.Apache.catalina.startup.WebAnnotationSet.loadMethodsAnnotation(WebAnnotationSet.Java:275)
    at org.Apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.Java:137)
    at org.Apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.Java:66)
    at org.Apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.Java:381)
    at org.Apache.catalina.startup.ContextConfig.configureStart(ContextConfig.Java:858)
    at org.Apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.Java:345)
    at org.Apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.Java:119)
    at org.Apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.Java:90)
    at org.Apache.catalina.core.StandardContext.startInternal(StandardContext.Java:5161)
    at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:150)
    ... 7 more
Caused by: Java.lang.ClassNotFoundException: HttpServletRequest
    at org.Apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.Java:1711)
    at org.Apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.Java:1556)
    ... 21 more
May 11, 2012 10:09:21 AM org.Apache.catalina.core.ContainerBase startInternal
SEVERE: A child container failed during start
Java.util.concurrent.ExecutionException: org.Apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
    at Java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.Java:222)
    at Java.util.concurrent.FutureTask.get(FutureTask.Java:83)
    at org.Apache.catalina.core.ContainerBase.startInternal(ContainerBase.Java:1128)
    at org.Apache.catalina.core.StandardEngine.startInternal(StandardEngine.Java:302)
    at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:150)
    at org.Apache.catalina.core.StandardService.startInternal(StandardService.Java:443)
    at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:150)
    at org.Apache.catalina.core.StandardServer.startInternal(StandardServer.Java:732)
    at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:150)
    at org.Apache.catalina.startup.Catalina.start(Catalina.Java:675)
    at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:39)
    at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:25)
    at Java.lang.reflect.Method.invoke(Method.Java:597)
    at org.Apache.catalina.startup.Bootstrap.start(Bootstrap.Java:322)
    at org.Apache.catalina.startup.Bootstrap.main(Bootstrap.Java:450)
Caused by: org.Apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
    at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:154)
    at org.Apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.Java:1566)
    at org.Apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.Java:1556)
    at Java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.Java:303)
    at Java.util.concurrent.FutureTask.run(FutureTask.Java:138)
    at Java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.Java:886)
    at Java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.Java:908)
    at Java.lang.Thread.run(Thread.Java:680)
Caused by: org.Apache.catalina.LifecycleException: A child container failed during start
    at org.Apache.catalina.core.ContainerBase.startInternal(ContainerBase.Java:1136)
    at org.Apache.catalina.core.StandardHost.startInternal(StandardHost.Java:782)
    at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:150)
    ... 7 more
May 11, 2012 10:09:21 AM org.Apache.catalina.startup.Catalina start
SEVERE: Catalina.start: 
org.Apache.catalina.LifecycleException: Failed to start component [StandardServer[8005]]
    at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:154)
    at org.Apache.catalina.startup.Catalina.start(Catalina.Java:675)
    at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:39)
    at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:25)
    at Java.lang.reflect.Method.invoke(Method.Java:597)
    at org.Apache.catalina.startup.Bootstrap.start(Bootstrap.Java:322)
    at org.Apache.catalina.startup.Bootstrap.main(Bootstrap.Java:450)
Caused by: org.Apache.catalina.LifecycleException: Failed to start component [StandardService[Catalina]]
    at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:154)
    at org.Apache.catalina.core.StandardServer.startInternal(StandardServer.Java:732)
    at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:150)
    ... 7 more
Caused by: org.Apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina]]
    at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:154)
    at org.Apache.catalina.core.StandardService.startInternal(StandardService.Java:443)
    at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:150)
    ... 9 more
Caused by: org.Apache.catalina.LifecycleException: A child container failed during start
    at org.Apache.catalina.core.ContainerBase.startInternal(ContainerBase.Java:1136)
    at org.Apache.catalina.core.StandardEngine.startInternal(StandardEngine.Java:302)
    at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:150)
    ... 11 more
May 11, 2012 10:09:21 AM org.Apache.catalina.startup.Catalina start
INFO: Server startup in 561 ms

Comment puis-je résoudre l'erreur. J'ai examiné des articles similaires mais ne l'ai pas trouvé utile.

26
Hozefa

Votre application Web possède des bibliothèques spécifiques à servletcontainer, telles que le fichier servlet-api.jar dans son /WEB-INF/lib. Ceci est pas correct. Retirez-les tous. Le /WEB-INF/lib doit contenir uniquement les bibliothèques spécifiques à la webapp, pas au servletcontainer. Le servletcontainer (comme Tomcat) est celui qui devrait déjà fournir les bibliothèques spécifiques à servletcontainer. Si vous fournissez des bibliothèques à partir d'un conteneur servlet quelconque d'une marque/version différente, vous rencontrerez ce type de problèmes car votre application Web ne pourrait pas s'exécuter sur un conteneur servlet d'une marque/version différente de celle d'où proviennent ces bibliothèques .

Il s’agit d’une erreur assez courante des démarreurs lorsqu’ils rencontrent des erreurs de compilation parce qu’ils n’ont pas configuré leur droit de projet IDE. Voir aussi Comment importer l'API javax.servlet dans mon projet Eclipse?

42
BalusC

Caused by: Java.lang.NoClassDefFoundError: HttpServletRequest

Le problème ci-dessus peut être dû au fait que la bibliothèque javax est introuvable.

J'ai résolu le même problème avec:
Faites un clic droit sur le projet dans Eclipse → PropertiesJava Build PathLibrariesAdd library...Server RuntimeApache Tomcat

13
nikhil sharma

Je n'avais pas de servlet-api.jar dans le répertoire WEB-INF/lib de l'application (ni dans aucun autre fichier jar de ce fichier). Le problème était que dans WEB-INF/web.xml j'avais ceci ...

    ...
    <servlet>
      <servlet-name>MyServlet</servlet-name>
      <servlet-class>com.bizooka.net.MyServlet</servlet-class>
    </servlet>
    <servlet-mapping>
      <servlet-name>MyServlet</servlet-name>
      <url-pattern>/MyServlet</url-pattern>
    </servlet-mapping>
    ...

... selon un tutoriel. En supprimant cela, le servlet était toujours en mesure de fonctionner et l'erreur n'était pas générée.

3
user3567174

ajoutez ce qui suit dans votre pom.xml .it fonctionne pour moi.

     <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>1.2</version>
     </dependency>
3
abhishekgarg

J'ai le même problème lorsque j'essayais avec le premier Springapp MVC webapp. Ce que j’avais fait a été téléchargé les fichiers jar fournis à partir du lien (cadre de téléchargement du ressort) Parmi les fichiers jar du dossier extrait de Zip, les fichiers jar que je devais utiliser étaient: 

  • org.springframework.asm-3.0.1.RELEASE-A.jar

  • org.springframework.beans-3.0.1.RELEASE-A.jar

  • org.springframework.context-3.0.1.RELEASE-A.jar

  • org.springframework.core-3.0.1.RELEASE-A.jar

  • org.springframework.expression-3.0.1.RELEASE-A.jar

  • org.springframework.web.servlet-3.0.1.RELEASE-A.jar

  • org.springframework.web-3.0.1.RELEASE-A.jar 

Mais au fur et à mesure que j'obtenais l'erreur en cherchant une solution, j'ai compris que j'avais aussi besoin du bocal suivant.

  • commons-logging-1.0.4.jar

  • jstl-1.2.jar

Ensuite, j'ai recherché et téléchargé les deux fichiers jar séparément et les ai inclus dans le dossier / WEB-INF/lib. Et enfin, j'ai pu faire fonctionner mon application Web à l'aide du serveur Tomcat. :) 

0
Niraj

Merci les gars . Tout ce qui précède a échoué sauf celui qui a supprimé tout le contenu du fichier C:\Users\debasish\workspace\.metadata\.plugins\org.Eclipse.wst.server.core, puis créé à nouveau le serveur. 

Mais supprimez d'abord le serveur avant de supprimer le contenu de ce fichier. 

0
Debasish Ghosh

vous devez ajouter le fichier servlet-api.jar dans le dossier WEB-INF/lib

0
Deep Shah

Je viens de supprimer la déclaration de la servlet dans le fichier web.xml et cela fonctionne pour moi.

Bonne chance

0
Marquise Mery

La même erreur que j'ai 

Caused by: org.Apache.catalina.LifecycleException: A child container failed during start

J'ai supprimé le projet de l'espace de travail Eclipse, supprimé le dossier .settings du projet et importé de nouveau dans Eclipse .

0
Aslam anwer

Celui-ci est destiné à tous les utilisateurs Maven, utilisant leurs dépendances pour le chemin de classe et ne les copiant pas dans /WEB-INF/lib:just, ajoutez ceci (ce qui copie les bibliothèques de dépendances) avant </plugin>

<plugin>
    <artifactId>maven-dependency-plugin</artifactId>
        <executions>
            <execution>
                <phase>process-sources</phase>
                <goals>
                    <goal>copy-dependencies</goal>
                </goals>
                <configuration>
                    <outputDirectory>WebContent/WEB-INF/lib</outputDirectory>
                </configuration>
            </execution>
        </executions>
    </plugin>
0
Li3ro

J'ai eu le même problème, et la cause était l'absence de commons-logging-1.2.jar

Je l'ajoute au dossier lib, puis mon serveur Apache Tomcat 7 s'exécute sans problème.

0
Yacino