Servlets java.lang.ClassNotFoundException:HttpServletRequest

Servlets java.lang.ClassNotFoundException:HttpServletRequest,servlets,tomcat7,Servlets,Tomcat7,我刚得到tomcat 7.0.27。我把启动tomcat的时间保持在45秒。而且它在tomcat上的旧版本上运行良好。 但运行它时会出现以下错误: SEVERE: A child container failed during start java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalin

我刚得到tomcat 7.0.27。我把启动tomcat的时间保持在45秒。而且它在tomcat上的旧版本上运行良好。 但运行它时会出现以下错误:

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

如何解决错误。我查看了一些类似的帖子,但没有发现它有用。

您的web应用程序在其
/web-INF/lib
中有servlet容器特定的库,如
servlet api.jar
文件。这是不是对。把它们全部去掉。
/WEB-INF/lib
应该只包含特定于WEB应用程序的库,而不是servlet容器的库。servlet容器(比如Tomcat)应该已经提供了servlet容器特定的库。如果您从不同品牌/版本的任意servlet容器提供库,您将遇到此类问题,因为您的web应用程序将无法在不同品牌/版本的servlet容器上运行

当初学者遇到编译时错误时,这是一个非常常见的错误,因为他们没有正确设置IDE项目。另见

原因:java.lang.NoClassDefFoundError:HttpServletRequest

上述问题可能是因为找不到
javax

我用:

右键单击Eclipse中的项目→ <代码>属性→ <代码>Java构建路径→ <代码>库→ <代码>添加库…→ <代码>服务器运行时→
ApacheTomcat

因此,问题与elcipse的元数据错误有关。 转到保存此配置的元数据文件夹。对我来说,其中一个ERORR是:

SEVERE: Error starting static Resources java.lang.IllegalArgumentException: Document base C:\Users\Cannibal\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\FoodQuantityService does not exist or is not a readable directory
因此,在eclipse的工作区中,它对所有人都是不同的,并删除它的所有内容。我的服务名为FoodQuantityService,因此我删除了org.eclipse.wst.server.core中的所有文件,但在此之前,请从eclipse中删除服务器配置

然后创建新配置 文件->新建->其他->服务器
选择Tomcat,然后选择要发布的项目。启动服务器,一切都会正常。

请确保导入正确的批注,因为我和您有相同的问题


javax.servlet.annotation.*

如果您正在使用并且现在在工作区中关闭的任何项目可能导致此问题,请尝试从eclipse内的服务器文件夹中删除上下文或打开这些项目。

我在使用eclipse jee时遇到了相同的问题。
我发现这个问题的原因是我在我的web应用程序中有两个或多个重复的@WebServlet(“/yourServlet”)定义,所以解决方案是消除重复项

我在应用程序的web-INF/lib目录(或任何其他jar目录)中没有servlet-api.jar。问题是在WEB-INF/WEB.xml中,我有一个

    ...
    <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>
    ...
。。。
MyServlet
com.bizooka.net.MyServlet
MyServlet
/MyServlet
...

…根据教程。删除它仍然允许servlet正常工作,并且没有出现错误。

在pom.xml中添加以下内容。这对我很有用

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

公用记录
公用记录
1.2

我在试用第一款Spring MVC webapp时也遇到了同样的问题。我所做的是从链接下载jar文件。 在zip解压缩文件夹中的jar中,我希望使用的jar文件是

  • 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

但是当我遇到错误,寻找解决方案时,我发现我也需要下面的jar

  • commons-logging-1.0.4.jar

  • jstl-1.2.jar


然后我分别搜索并下载了这两个jar文件,并将它们包含在/WEB-INF/lib文件夹中。最后,我能够使用Tomcat服务器运行我的Web应用程序

您应该在WEB-INF/lib文件夹中添加servler-api.jar文件

我刚刚删除了WEB.xml文件中的servlet声明,它对我有效

     <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>1.2</version>
     </dependency>
祝你们好运,谢谢大家。 除此之外,上述操作均失败,删除了文件
C:\Users\debasish\workspace\.metadata\.plugins\org.eclipse.wst.server.core中的所有内容,然后再次创建服务器


但在删除这些文件内容之前,请先删除服务器

这是为所有Maven用户准备的,使用他们对类路径的依赖项,而不是将它们复制到/WEB-INF/lib中: 只需在


maven依赖插件
过程源
复制依赖项
WebContent/WEB-INF/lib

我也有同样的问题,原因是缺少

我将它添加到
lib
文件夹中,然后我的Apache Tomcat 7服务器顺利执行。

与我得到的错误相同

Caused by: org.apache.catalina.LifecycleException: A child container failed during start
我从eclipse工作空间中删除了项目,删除了项目的.settings文件夹,并重新导入到eclipse中。 为我做了这个把戏。

1在Eclipse EE项目浏览器中右键单击“您的项目” 2点击属性 3单击目标运行时 4您当前使用的版本的复选框 5申请并关闭


这应该可以解决问题。

我也有这个问题,我所做的就是删除现有的发球