启动java.util.concurrent.ExecutionException期间子容器失败

我试图创建/运行一个基本的JSP并遇到以下错误。 我看到其他人也有类似的问题,但是,我还没有找到(或正确实施)手头问题的解决方案。 任何帮助,将不胜感激!

SEVERE: A child container failed during start java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/SimpleServletProject]] at java.util.concurrent.FutureTask.report(FutureTask.java:122) at java.util.concurrent.FutureTask.get(FutureTask.java:192) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123) at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:816) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1575) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1565) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/SimpleServletProject]] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) ... 6 more Caused by: java.lang.NoClassDefFoundError: HttpServletRequest at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Class.java:2693) at java.lang.Class.getDeclaredMethods(Class.java:1967) at org.apache.catalina.util.Introspection.getDeclaredMethods(Introspection.java:127) at org.apache.catalina.startup.WebAnnotationSet.loadMethodsAnnotation(WebAnnotationSet.java:287) at org.apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.java:140) at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:65) at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:415) at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:892) at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:386) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5380) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ... 6 more Caused by: java.lang.ClassNotFoundException: HttpServletRequest at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571) ... 20 more Jan 22, 2015 9:04:06 PM 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.report(FutureTask.java:122) at java.util.concurrent.FutureTask.get(FutureTask.java:192) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123) at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:300) 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:739) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.startup.Catalina.start(Catalina.java:689) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:483) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:321) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455) 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:1575) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1565) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: org.apache.catalina.LifecycleException: A child container failed during start at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1131) at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:816) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ... 6 more Jan 22, 2015 9:04:06 PM org.apache.catalina.startup.Catalina start SEVERE: The required Server component failed to start so Tomcat is unable to 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:689) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:483) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:321) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455) 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:739) 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:1131) at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:300) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ... 11 more Jan 22, 2015 9:04:06 PM org.apache.coyote.AbstractProtocol pause INFO: Pausing ProtocolHandler ["http-bio-8080"] Jan 22, 2015 9:04:06 PM org.apache.coyote.AbstractProtocol pause INFO: Pausing ProtocolHandler ["ajp-bio-8009"] Jan 22, 2015 9:04:06 PM org.apache.catalina.core.StandardService stopInternal INFO: Stopping service Catalina Jan 22, 2015 9:04:06 PM org.apache.coyote.AbstractProtocol destroy INFO: Destroying ProtocolHandler ["http-bio-8080"] Jan 22, 2015 9:04:06 PM org.apache.coyote.AbstractProtocol destroy INFO: Destroying ProtocolHandler ["ajp-bio-8009"] 

我想你会在这里找到类似的问题:

java.lang.ClassNotFoundException:HttpServletRequest

也许可以回答。 希望这可以帮助。

您必须将servlet-api.jar与war文件中的其他库打包在一起。 您可以通过打开war文件并导航到WEB-INF / lib文件夹来validation这一点。

理想情况下,您不应该提供servlet-api jar。 在您的情况下,容器Tomcat负责在部署时为您的应用程序提供容器。 如果您尝试提供它,则由于版本不匹配等问题而出现。最佳做法是避免包装它。 从WEB-INF / lib中删除它。

附加信息

如果您使用maven作为包装,那么只需添加带有依赖项的provided标签,maven将确保不将其打包到最终的war文件中。 就像是

  ..  ...  ... provided  

您的webapp在其/ WEB-INF / lib中具有servletcontainer特定的库,如servlet-api.jar文件。 这个不对。

全部删除它们。

/ WEB-INF / lib应仅包含特定于webapp的库,而不应包含servletcontainer。 servletcontainer(如Tomcat)是应该已经提供servletcontainer特定库的人。

如果你从一个不同的make / version的任意servletcontainer提供库,你会遇到这种问题,因为你的webapp不能在不同make /版本的servletcontainer上运行,而不是那些库源自。

如何解决:在Eclipse中右键单击eclipse中的项目属性 – > Java构建路径 – >添加库 – >服务器运行时库 – > Apache Tomcat

Im Maven项目: –

在pom.xml文件中添加follewing行

  javax.servlet servlet-api ${default.javax.servlet.version} provided   javax.servlet.jsp jsp-api ${default.javax.servlet.jsp.version} provided  

我遇到了类似的问题,这是因为我在.java文件和web.xml中编写了WebServlet Path。 从任何一个位置删除它对我来说很好。

在.java文件中

 @WebServlet("/index1.jsp") 

并在web.xml中

  Logout tpc.Logout   Logout /index1.jsp  

删除名为Servers(或Servers1,包含server.xml的Servers2)的项目,在Package Explorer(工作区)中找到它

从Eclipse中删除服务器:转到Window> Preferences> Server> Runtime Environment,这里从eclipse中删除你正在使用的服务器并再次添加它(这样做会在Eclipse中创建一个新的Server项目文件夹),

从Project中删除服务器:还删除项目中的服务器(构建路径>配置路径> Java构建路径)并再次添加。

现在你有一个新的Server项目,它的server.xml上没有Multiple Context,只删除server.xml中的重复路径解决了exixting问题,但仍然服务器dint启动,通过执行此Server启动(Apache Tomcat v7)并正常工作

而且我不知道这是否是一个好习惯,我是编程的先驱。

我尝试使用http servlet,当我编写重复的@WebServlet时,我发现了这个问题,我遇到了这个问题。在删除或更改@WebServlet值后,它正在运行。

1.Class

 @WebServlet("/display") public class MyFirst extends HttpServlet { 

2.Class

 @WebServlet("/display") public class MySecond extends HttpServlet { 

检查JAVA_HOME是否设置为1.7或更低。 因为tomcat 7与jdk 1.8不兼容

这对我有用

这对我有用:

1)将commons-logging.jar添加到WEB-INF / lib文件夹

2)将此jar添加为maven依赖项,例如将其添加到pom.xml:

   commons-logging commons-logging 1.2  

3)Maven安装

4)运行服务器。

希望能帮助到你。

我遇到类似日志的类似问题。 我使用JDK 1.6和apache tomcat 7.将java_home设置为1.7解决了这个问题。

有些时候由于java版本和tomcat版本不兼容而出现此问题。选择两者的兼容版本。

面对同样的问题。 将JRE更改为正确的1.8版本并执行maven clean并构建解决问题。 您可能需要更改Project Facet并validation正确的路径。

  1. 下载commons-logging-1.1.1.jar
  2. 转到您的项目,构建路径,配置构建路径,Java构建路径。
  3. 添加外部jar ..添加commons-logging-1.1.1.jar
  4. 点击申请,好的
  5. 转到项目,属性,部署程序集,单击添加,Java构建路径条目,然后选择commons logging jar,ok ,, apply,ok ..
  6. 删除服务器,清理ur proejct,添加服务器,运行项目。

添加了AWS依赖项并出现此错误。 当我从pom中删除它时,错误消失了。 可能你可能有相同的情况。