我运行 Tomcat 9,它一直提示:GRAVE: 子容器启动时失败

我运行 Tomcat 9,它一直提示:GRAVE: 子容器启动时失败

GRAVE:启动 java.util.concurrent.ExecutionException 期间子容器失败:org.apache.catalina.LifecycleException:无法启动组件 [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/Spring_MVC_DinamicWebPages]] 在 java.util.concurrent.FutureTask.report(未知来源) 在 java.util.concurrent.FutureTask.get(未知来源) 在 org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:916) 在 org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:841) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) 在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384) org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374) at java.util.concurrent.FutureTask.run(未知来源) at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) at java.util.concurrent.AbstractExecutorService.submit(未知来源) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909) at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.StandardService.startInternal(StandardService.java:421) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:930) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.startup.Catalina.start(Catalina.java:738) 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:342) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:473) 原因:org.apache.catalina.LifecycleException:无法启动组件 [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/Spring_MVC_DinamicWebPages]] at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374) at java.util.concurrent.FutureTask.run(Unknown Source) at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) at java.util.concurrent.AbstractExecutorService.submit(Unknown Source) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909) ... 21 more Caused by: java.lang.IllegalArgumentException: 发现多个名为 [spring_web] 的片段。这在相对排序下是不合法的。有关详细信息,请参阅 Servlet 规范的 8.2.2 2c 节。考虑使用绝对排序。at org.apache.tomcat.util.descriptor.web.WebXml.orderWebFragments(WebXml.java:2260) at org.apache.tomcat.util.descriptor.web.WebXml.orderWebFragments(WebXml.java:2218) at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1342) at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:983) at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:302) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5044) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)...另外 27 个

2020 年 7 月 19 日晚上 10:25:50 org.apache.catalina.core.ContainerBase startInternal GRAVE:启动过程中子容器失败 java.util.concurrent.ExecutionException:org.apache.catalina.LifecycleException:启动过程中子容器失败 在 java.util.concurrent.FutureTask.report(未知来源) 在 java.util.concurrent.FutureTask.get(未知来源) 在 org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:916) 在 org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) 在 org.apache.catalina.core.StandardService.startInternal(StandardService.java:421) org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:930) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.startup.Catalina.start(Catalina.java:738) 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:342) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:473) 原因:org.apache.catalina.LifecycleException:启动期间子容器失败,位于 org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:928),位于 org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:841),位于 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183),位于 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384),位于 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374),位于 java.util.concurrent.FutureTask.run(未知来源),位于org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) 在 java.util.concurrent.AbstractExecutorService.submit(未知来源) 在 org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909) ... 还有 13 个由以下原因引起:java.util.concurrent.ExecutionException:org.apache.catalina.LifecycleException:无法启动组件 [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/Spring_MVC_DinamicWebPages]] 在 java.util.concurrent.FutureTask.report(未知来源) 在 java.util.concurrent.FutureTask.get(未知来源) 在 org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:916) ... 还有 21 个由以下原因引起: org.apache.catalina.LifecycleException:无法启动组件 [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/Spring_MVC_DinamicWebPages]] 在 org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198) 在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384) 在 org.apache.catalina。core.ContainerBase$StartChild.call(ContainerBase.java:1374) at java.util.concurrent.FutureTask.run(Unknown Source) at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) at java.util.concurrent.AbstractExecutorService.submit(Unknown Source) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909) ... 21 more Caused by: java.lang.IllegalArgumentException: 发现多个名为 [spring_web] 的片段。这在相对排序下是不合法的。有关详细信息,请参阅 Servlet 规范的第 8.2.2 2c 节。考虑使用绝对排序。在 org.apache.tomcat.util.descriptor.web.WebXml.orderWebFragments(WebXml.java:2260) 在 org.apache.tomcat.util.descriptor.web.WebXml.orderWebFragments(WebXml.java:2218) 在 org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1342) 在 org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:983) 在 org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:302) 在 org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123) 在 org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5044) 在org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)...另外 27 个

2020 年 7 月 19 日,晚上 10:25:50 org.apache.catalina.startup.Catalina 启动 GRAVE:Tomcat 无法启动,因为组件 Server 要求在启动时重新启动。 org.apache.catalina.LifecycleException:启动期间子容器失败,位于 org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:928),位于 org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262),位于 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183),位于 org.apache.catalina.core.StandardService.startInternal(StandardService.java:421),位于 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183),位于 org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:930),位于 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) org.apache.catalina.startup.Catalina.start(Catalina.java:738) 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:342) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:473) 导致:java.util.concurrent.ExecutionException:org.apache.catalina.LifecycleException:启动期间子容器失败 at java.util.concurrent.FutureTask.report(Unknown Source) at java.util.concurrent.FutureTask.get(未知来源)在 org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:916)... 还有 13 个由以下原因引起:org.apache.catalina.LifecycleException:启动期间子容器失败在 org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:928)在 org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:841)在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384)在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374) java.util.concurrent.FutureTask.run(未知来源) 在 org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) 在 java.util.concurrent.AbstractExecutorService.submit(未知来源) 在 org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909) ... 另外 13 个由以下原因引起:java.util.concurrent.ExecutionException:org.apache.catalina.LifecycleException:无法启动组件 [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/Spring_MVC_DinamicWebPages]] 在 java.util.concurrent.FutureTask.report(未知来源) 在 java.util.concurrent.FutureTask.get(未知来源) 在org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:916) ... 另外 21 个由以下原因引起:org.apache.catalina.LifecycleException:无法在 org.apache.catalina.util.LifecycleBase 启动组件 [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/Spring_MVC_DinamicWebPages]]。handleSubClassException(LifecycleBase.java:440)在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198)在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384)在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374)在 java.util.concurrent.FutureTask.run(未知来源)在 org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)在 java.util.concurrent.AbstractExecutorService.submit(未知来源)在 org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909)... 还有 21 个由以下原因引起:java.lang.IllegalArgumentException:多个片段具有名称找到了 [spring_web]。这在相对排序下是不合法的。有关详细信息,请参阅 Servlet 规范第 8.2.2 2c 节。请考虑使用绝对排序。在 org.apache.tomcat.util.descriptor.web.WebXml.orderWebFragments(WebXml.java:2260) 在 org.apache.tomcat.util.descriptor.web.WebXml.orderWebFragments(WebXml.java:2218) 在 org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1342) 在 org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:983) 在 org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:302) 在 org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123) 在 org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5044) 在org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)...另外 27 个183)...另外27个183)...另外27个

2020 年 7 月 19 日晚上 10:25:50 org.apache.coyote.AbstractProtocol 暂停 信息:正在暂停 ProtocolHandler ["http-nio-8080"] 2020 年 7 月 19 日晚上 10:25:50 org.apache.catalina.core.StandardService stopInternal 信息:正在暂停服务 [Catalina] 2020 年 7 月 19 日晚上 10:25:50 org.apache.coyote.AbstractProtocol 销毁 信息:正在销毁 ProtocolHandler ["http-nio-8080"]

这是我遇到的致命错误。我尝试重新安装 eclipse 和 Tomcat,但不起作用。

答案1

答案就在堆栈跟踪中:

More than one fragment with the name [spring_web] was found. This is not legal with relative ordering. See section 8.2.2 2c of the Servlet specification for details. Consider using absolute ordering.

WEB-INF/lib 中有多个 JAR(根据配置,可能还有 $CATALINA_BASE/lib),其中包含声明META-INF/web-fragment.xml名称为 的spring_web。这是不合法的,因此 Tomcat 拒绝启动该应用程序。

您很可能拥有一个或多个 Spring JAR 的多个版本和/或副本。确保您只有一个,应用程序将启动(或至少在因其他原因失败之前继续运行)。

相关内容