【问题标题】:org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContextorg.apache.catalina.LifecycleException:无法启动组件 [StandardEngine[Catalina].StandardHost[localhost].StandardContext
【发布时间】:2014-12-28 18:56:51
【问题描述】:

我尝试在 Spring 中使用 Apache Tomcat 7.0 编写一个简单的 hello world 程序。我收到以下错误,服务器进入停止状态。

严重:子容器在启动期间失败 java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException:无法启动组件 [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/PassportParking]] 在 java.util.concurrent.FutureTask.report(Unknown Source) 在 java.util.concurrent.FutureTask.get(未知来源)在 org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123) 在 org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:816) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1575) 在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1565) 在 java.util.concurrent.FutureTask.run(Unknown Source) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(未知来源)在 java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) 原因: org.apache.catalina.LifecycleException:无法启动组件 [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/PassportParking]] 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) ... 6 更多原因:java.lang.NoClassDefFoundError: org/springframework/core/NestedRuntimeException 在 java.lang.ClassLoader.defineClass1(本机方法)在 java.lang.ClassLoader.defineClass(未知来源)在 java.security.SecureClassLoader.defineClass(未知来源)在 org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2957) 在 org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1210) 在 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1690) 在 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571) 在 java.lang.Class.getDeclaredFields0(Native Method) 在 java.lang.Class.privateGetDeclaredFields(未知来源)在 java.lang.Class.getDeclaredFields(未知来源)在 org.apache.catalina.util.Introspection.getDeclaredFields(Introspection.java:106) 在 org.apache.catalina.startup.WebAnnotationSet.loadFieldsAnnotation(WebAnnotationSet.java:270) 在 org.apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.java:139) 在 org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:65) 在 org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:415) 在 org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:892) 在 org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:386) 在 org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117) 在 org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) 在 org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5380) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ... 6 更多原因:java.lang.ClassNotFoundException: org.springframework.core.NestedRuntimeException 在 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720) 在 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571) ... 27 更多

2014 年 11 月 2 日上午 12:09:30 org.apache.catalina.core.ContainerBase startInternal SEVERE:子容器在启动期间失败 java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException:无法启动组件 [StandardEngine[Catalina].StandardHost[localhost]] 在 java.util.concurrent.FutureTask.report(未知来源)在 java.util.concurrent.FutureTask.get(未知来源)在 org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123) 在 org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:300) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 在 org.apache.catalina.core.StandardService.startInternal(StandardService.java:443) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 在 org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:739) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 在 org.apache.catalina.startup.Catalina.start(Catalina.java:689) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源)在 java.lang.reflect.Method.invoke(未知来源)在 org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:321) 在 org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455) 引起 作者:org.apache.catalina.LifecycleException:无法启动组件 [StandardEngine[Catalina].StandardHost[localhost]] 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) 在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1575) 在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1565) 在 java.util.concurrent.FutureTask.run(Unknown Source) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(未知来源)在 java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) 原因: org.apache.catalina.LifecycleException:子容器失败 在开始时 org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1131) 在 org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:816) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ... 6 更多

2014 年 11 月 2 日上午 12:09:30 org.apache.catalina.startup.Catalina 开始 严重:所需的服务器组件无法启动,因此 Tomcat 是 无法启动。 org.apache.catalina.LifecycleException: 失败 启动组件 [StandardServer[8005]] 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) 在 org.apache.catalina.startup.Catalina.start(Catalina.java:689) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源)在 java.lang.reflect.Method.invoke(未知来源)在 org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:321) 在 org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455) 引起 作者:org.apache.catalina.LifecycleException:无法启动组件 [标准服务 [Catalina]] 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) 在 org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:739) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ... 7 更多原因:org.apache.catalina.LifecycleException:失败 启动组件 [StandardEngine[Catalina]] 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) 在 org.apache.catalina.core.StandardService.startInternal(StandardService.java:443) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ... 9 更多原因:org.apache.catalina.LifecycleException: A child 容器在启动期间失败 org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1131) 在 org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:300) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ... 11 更多

【问题讨论】:

  • 向我们展示您的程序。
  • 即使我也有同样的问题。参考这个链接:it worked for me

标签: java spring-mvc tomcat


【解决方案1】:

在我看来,您的 Web 应用程序中缺少一个或多个 Spring Framework jar。如果您查看堆栈跟踪,则有一行:

Caused by: java.lang.NoClassDefFoundError: org/springframework/core/NestedRuntimeException

我会说您的 Web 应用程序中没有“spring-core”jar。您需要 Web 应用程序的 WEB-INF/lib 目录中的 Spring jar。大多数基于 Spring 的 Web 应用程序至少需要“spring-beans”、“spring-context”、“spring-core”、“spring-io”和“spring-web”……也许更多,我在这里是凭记忆工作的。

【讨论】:

    猜你喜欢
    • 2017-02-16
    • 2018-03-04
    • 1970-01-01
    • 2013-01-22
    • 2013-08-26
    • 1970-01-01
    • 1970-01-01
    • 2012-09-02
    相关资源
    最近更新 更多