【问题标题】:tomcat 7 failed to start from within eclipsetomcat 7无法从eclipse中启动
【发布时间】:2014-04-24 20:02:37
【问题描述】:

我正在尝试从 Eclipse 中执行 spring mvc web 应用程序的run as...run on server,但出现以下对话框错误:

谁能告诉我如何解决这个问题?

这是完整的堆栈跟踪:

Mar 18, 2014 2:03:22 PM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: list of lotsa files with their paths.
Mar 18, 2014 2:03:22 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:KnowledgeManager' did not find a matching property.
Mar 18, 2014 2:03:22 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
Mar 18, 2014 2:03:22 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
Mar 18, 2014 2:03:22 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 637 ms
Mar 18, 2014 2:03:22 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Mar 18, 2014 2:03:22 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.42
Mar 18, 2014 2:03:23 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].StandardContext[/KnowledgeManager]]  
    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:1123)
    at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:800)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
    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:662)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/KnowledgeManager]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
    ... 7 more
Caused by: java.lang.NoClassDefFoundError: org/springframework/context/ConfigurableApplicationContext
    at java.lang.Class.getDeclaredFields0(Native Method)
    at java.lang.Class.privateGetDeclaredFields(Class.java:2291)
    at java.lang.Class.getDeclaredFields(Class.java:1743)
    at org.apache.catalina.util.Introspection.getDeclaredFields(Introspection.java:106)
    at org.apache.catalina.startup.WebAnnotationSet.loadFieldsAnnotation(WebAnnotationSet.java:263)
    at org.apache.catalina.startup.WebAnnotationSet.loadApplicationListenerAnnotations(WebAnnotationSet.java:92)
    at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:65)
    at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:405)
    at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:881)
    at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:376)
    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:5322)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    ... 7 more
Caused by: java.lang.ClassNotFoundException: org.springframework.context.ConfigurableApplicationContext
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
    ... 21 more
Mar 18, 2014 2:03:23 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$Sync.innerGet(FutureTask.java:222)
    at java.util.concurrent.FutureTask.get(FutureTask.java:83)
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123)
    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:691)
    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:456)
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:1559)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
    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:662)
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:800)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    ... 7 more
Mar 18, 2014 2:03:23 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:691)
    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:456)
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:1131)
    at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:302)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    ... 11 more
Mar 18, 2014 2:03:23 PM org.apache.coyote.AbstractProtocol pause
INFO: Pausing ProtocolHandler ["http-bio-8080"]
Mar 18, 2014 2:03:23 PM org.apache.coyote.AbstractProtocol pause
INFO: Pausing ProtocolHandler ["ajp-bio-8009"]
Mar 18, 2014 2:03:23 PM org.apache.catalina.core.StandardService stopInternal
INFO: Stopping service Catalina
Mar 18, 2014 2:03:23 PM org.apache.coyote.AbstractProtocol destroy
INFO: Destroying ProtocolHandler ["http-bio-8080"]
Mar 18, 2014 2:03:23 PM org.apache.coyote.AbstractProtocol destroy
INFO: Destroying ProtocolHandler ["ajp-bio-8009"]

这是我的 pom.xml 中编写的 spring-context 依赖项:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>${spring-framework.version}</version>
</dependency>  

我也做过maven update projectmaven download sourceseclipse clean project,但这些都没有解决这个问题。

我可以做些什么来解决这个问题?

【问题讨论】:

    标签: java eclipse spring tomcat spring-mvc


    【解决方案1】:

    由于 pom.xml 文件中可用的依赖项,我遇到了同样的问题,其中一些已损坏。我通过简单地删除 .m2/repository 文件夹内容并按照以下步骤解决该问题。

    1. 运行方式 -> Maven clean。
    2. 运行方式 -> Maven 安装。(使用好的互联网提供商)。
    3. maven -> 更新项目。

    希望对你也有帮助。

    【讨论】:

      【解决方案2】:

      检查您在 web.xml 中的 url 模式 /webapp/* 用你的路径名替换“webapp”

      【讨论】:

        【解决方案3】:

        我也遇到了同样的问题。出现问题是因为我的项目构建路径中未添加通用日志记录 .jar 文件。添加后项目工作正常。

        【讨论】:

        • 我无法确认您的回答。不过,感谢您和 +1 对这个老问题的见解。
        【解决方案4】:

        这里是异常的原因:

        java.lang.ClassNotFoundException: org.springframework.context.ConfigurableApplicationContext
        

        您应该将 spring-context 和该工件依赖的所有 jar 添加到项目的类路径中,例如: org.springframework 弹簧上下文 ${org.springframework.version}

        编辑:

        右击你的项目->属性->部署程序集,验证你的项目依赖部署到WEB-INF/lib:

        编辑:

        真正解决问题的是什么: 右键单击服务器(在 Eclipse 的服务器视图中)-> clean + publish

        【讨论】:

        • 该依赖项已经在我的 pom.xml 中,语法相同。我也刚刚做了maven update projectmaven download sourceeclipse clean project,但class not found 错误仍然存​​在。您能提出其他建议吗?
        • 感谢您深入了解。我刚刚在上面的原始帖子中添加了我的 Eclipse 部署程序集的屏幕截图。还有其他想法吗?
        • 在服务器视图中右键单击服务器,然后简单的清理 + 发布即可解决问题。我没有看到任何其他解决此问题的方法。你确定maven已经下载了所有需要的依赖吗?
        • +1,谢谢。我尝试右键单击服务器,然后是clean,然后是publish,然后再次尝试run as...run on server,应用程序正在加载一个不相关的错误,我打算单独解决。我将您的建议标记为答案,但如果您将最近的建议添加为答案的编辑,其他人可能会更容易找到解决方案。
        • 我还有一个问题。你愿意帮助我吗?这是链接:stackoverflow.com/questions/23414314/…
        【解决方案5】:

        您能在项目的“Maven 依赖项”部分看到 spring jar 吗?

        如果没有,你的 pom 依赖定义可能有问题,或者更新项目没有成功完成。尝试检查依赖项定义并再次运行更新项目。

        如果是这样,您是否在您的服务器上尝试过“清理...”、“清理工作目录”和“发布”?

        希望对你有帮助。

        【讨论】:

        • +1 感谢您的帮助。该问题的解决方案是在 Eclipse 中右键单击服务器,然后执行 clean+publish。
        【解决方案6】:

        堆栈跟踪清楚地表明ClassNotFoundException

        您的类路径中似乎找不到Spring-context.jar

        尝试先在你的类路径中添加那个 jar。

        【讨论】:

        • +1 感谢您的帮助。该问题的解决方案是在 Eclipse 中右键单击服务器,然后执行 clean+publish。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-04-23
        • 2012-08-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多