在Eclipse中tomcat不部署项目启动正常,部署一个项目启动报异常

来源:互联网 发布:问卷录入软件 编辑:程序博客网 时间:2024/05/16 01:45

console窗口错误输出:

严重: A child container failed during startjava.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/syncW]]    at java.util.concurrent.FutureTask.report(Unknown Source)    at java.util.concurrent.FutureTask.get(Unknown Source)    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1119)    at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:819)    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1571)    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1561)    at java.util.concurrent.FutureTask.run(Unknown Source)    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)    at java.lang.Thread.run(Unknown Source)Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/syncW]]    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162)    ... 6 moreCaused by: java.lang.NoClassDefFoundError: Lorg/apache/logging/log4j/Logger;    at java.lang.Class.getDeclaredFields0(Native Method)    at java.lang.Class.privateGetDeclaredFields(Unknown Source)    at java.lang.Class.getDeclaredFields(Unknown Source)    at org.apache.catalina.util.Introspection.getDeclaredFields(Introspection.java:106)    at org.apache.catalina.startup.WebAnnotationSet.loadFieldsAnnotation(WebAnnotationSet.java:270)    at org.apache.catalina.startup.WebAnnotationSet.loadApplicationFilterAnnotations(WebAnnotationSet.java:109)    at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:64)    at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:417)    at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:891)    at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:388)    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:5522)    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)    ... 6 moreCaused by: java.lang.ClassNotFoundException: org.apache.logging.log4j.Logger    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1892)    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1735)    ... 20 more五月 03, 2017 11:27:59 下午 org.apache.catalina.core.ContainerBase startInternal严重: A child container failed during startjava.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]    at java.util.concurrent.FutureTask.report(Unknown Source)    at java.util.concurrent.FutureTask.get(Unknown Source)    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1119)    at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:300)    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)    at org.apache.catalina.core.StandardService.startInternal(StandardService.java:444)    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)    at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:758)    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)    at org.apache.catalina.startup.Catalina.start(Catalina.java:693)    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)    at java.lang.reflect.Method.invoke(Unknown Source)    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:428)Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162)    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1571)    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1561)    at java.util.concurrent.FutureTask.run(Unknown Source)    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)    at java.lang.Thread.run(Unknown Source)Caused by: org.apache.catalina.LifecycleException: A child container failed during start    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1127)    at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:819)    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)    ... 6 more五月 03, 2017 11:27:59 下午 org.apache.catalina.startup.Catalina start严重: 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:162)    at org.apache.catalina.startup.Catalina.start(Catalina.java:693)    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)    at java.lang.reflect.Method.invoke(Unknown Source)    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:428)Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardService[Catalina]]    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162)    at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:758)    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)    ... 7 moreCaused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina]]    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162)    at org.apache.catalina.core.StandardService.startInternal(StandardService.java:444)    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)    ... 9 moreCaused by: org.apache.catalina.LifecycleException: A child container failed during start    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1127)    at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:300)    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)    ... 11 more五月 03, 2017 11:27:59 下午 org.apache.coyote.AbstractProtocol pause信息: Pausing ProtocolHandler ["http-apr-8080"]五月 03, 2017 11:27:59 下午 org.apache.coyote.AbstractProtocol pause信息: Pausing ProtocolHandler ["ajp-apr-8009"]五月 03, 2017 11:27:59 下午 org.apache.catalina.core.StandardService stopInternal信息: Stopping service Catalina五月 03, 2017 11:27:59 下午 org.apache.coyote.AbstractProtocol destroy信息: Destroying ProtocolHandler ["http-apr-8080"]五月 03, 2017 11:27:59 下午 org.apache.coyote.AbstractProtocol destroy信息: Destroying ProtocolHandler ["ajp-apr-8009"]

其实根本问题在于:

Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/syncW]]    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162)    ... 6 moreCaused by: java.lang.NoClassDefFoundError: Lorg/apache/logging/log4j/Logger;    at java.lang.Class.getDeclaredFields0(Native Method)    at java.lang.Class.privateGetDeclaredFields(Unknown Source)    at java.lang.Class.getDeclaredFields(Unknown Source)    at org.apache.catalina.util.Introspection.getDeclaredFields(Introspection.java:106)    at org.apache.catalina.startup.WebAnnotationSet.loadFieldsAnnotation(WebAnnotationSet.java:270)    at org.apache.catalina.startup.WebAnnotationSet.loadApplicationFilterAnnotations(WebAnnotationSet.java:109)    at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:64)    at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:417)    at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:891)    at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:388)    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:5522)    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)    ... 6 moreCaused by: java.lang.ClassNotFoundException: org.apache.logging.log4j.Logger    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1892)    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1735)    ... 20 more

注意到org.apache.logging.log4j.logger中出现错误,其实是找不到所用到的类。
解决方法:
在WEB-INF里面的lib文件夹中缺少对Struts2的log4j-api-2.7.jar的引用,将log4j-api-2.7.jar放进去后运行成功。

在网上也有很多人出现过“在Eclipse中tomcat不部署项目启动正常,部署一个项目启动报异常”的问题,可能引起这个问题的原因不尽相同,但是只要在输出错误信息中探索应该可以找到原因,要坚持与之斗争。

0 0
原创粉丝点击