在idea工具内,开始一段时间启动无问题,有一次突然启动springboot报如下错误,可是install成jar启动正常。
启动环境如下:
tomcat版本8.5.15
jdk版本1.8.0_91
urrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].TomcatEmbeddedContext[/user]]at port(FutureTask.java:122)at (FutureTask.java:192)at org.ContainerBase.startInternal(ContainerBase.java:939)at org.StandardHost.startInternal(StandardHost.java:872)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)at org.ContainerBase$StartChild.call(ContainerBase.java:1419)at org.ContainerBase$StartChild.call(ContainerBase.java:1409)at urrent.FutureTask.run(FutureTask.java:266)at urrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)at urrent.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[Tomcat].StandardHost[localhost].TomcatEmbeddedContext[/user]]at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)... 6 common frames omitted
Caused by: org.apache.catalina.LifecycleException: Failed to start component [Pipeline[StandardEngine[Tomcat].StandardHost[localhost].TomcatEmbeddedContext[/user]]]at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)at org.StandardContext.startInternal(StandardContext.java:5117)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)... 6 common frames omitted
Caused by: org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.authenticator.NonLoginAuthenticator[/user]]at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)at org.StandardPipeline.startInternal(StandardPipeline.java:182)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)... 8 common frames omitted
Caused by: java.lang.NoSuchMethodError: javax.VirtualServerName()Ljava/lang/String;at org.apache.catalina.authenticator.AuthenticatorBase.startInternal(AuthenticatorBase.java:1141)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)... 10 common frames omitted
2023-11-13 10:25:38.993 [TID: N/A] [Tomcat-startStop-1] ERROR o.ContainerBase -A child container failed during start
urrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].TomcatEmbeddedContext[/user]]at port(FutureTask.java:122)at (FutureTask.java:192)at org.ContainerBase.startInternal(ContainerBase.java:939)at org.StandardHost.startInternal(StandardHost.java:872)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)at org.ContainerBase$StartChild.call(ContainerBase.java:1419)at org.ContainerBase$StartChild.call(ContainerBase.java:1409)at urrent.FutureTask.run(FutureTask.java:266)at urrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)at urrent.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[Tomcat].StandardHost[localhost].TomcatEmbeddedContext[/user]]at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)... 6 common frames omitted
Caused by: org.apache.catalina.LifecycleException: Failed to start component [Pipeline[StandardEngine[Tomcat].StandardHost[localhost].TomcatEmbeddedContext[/user]]]at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)at org.StandardContext.startInternal(StandardContext.java:5117)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)... 6 common frames omitted
Caused by: org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.authenticator.NonLoginAuthenticator[/user]]at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)at org.StandardPipeline.startInternal(StandardPipeline.java:182)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)... 8 common frames omitted
Caused by: java.lang.NoSuchMethodError: javax.VirtualServerName()Ljava/lang/String;at org.apache.catalina.authenticator.AuthenticatorBase.startInternal(AuthenticatorBase.java:1141)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)... 10 common frames omitted
2023-11-13 10:25:38.994 [TID: N/A] [main] ERROR o.ContainerBase -A child container failed during start
urrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost]]at port(FutureTask.java:122)at (FutureTask.java:192)at org.ContainerBase.startInternal(ContainerBase.java:939)at org.StandardEngine.startInternal(StandardEngine.java:262)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)at org.StandardService.startInternal(StandardService.java:422)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)at org.StandardServer.startInternal(StandardServer.java:793)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)at org.apache.catalina.startup.Tomcat.start(Tomcat.java:344)at org.at.TomcatEmbeddedServletContainer.initialize(TomcatEmbeddedServletContainer.java:99)at org.at.TomcatEmbeddedServletContainer.<init>(TomcatEmbeddedServletContainer.java:84)at org.TomcatEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.java:554)at org.EmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.java:179)at org.t.ateEmbeddedServletContainer(EmbeddedWebApplicationContext.java:164)at org.t.Refresh(EmbeddedWebApplicationContext.java:134)at t.fresh(AbstractApplicationContext.java:537)at org.t.fresh(EmbeddedWebApplicationContext.java:122)at org.springframework.fresh(SpringApplication.java:693)at org.springframework.freshContext(SpringApplication.java:360)at org.springframework.boot.SpringApplication.run(SpringApplication.java:303)at org.springframework.boot.SpringApplication.run(SpringApplication.java:1118)at org.springframework.boot.SpringApplication.run(SpringApplication.java:1107)testApp.main(UserApp.java:24)flect.NativeMethodAccessorImpl.invoke0(Native Method)flect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)flect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at flect.Method.invoke(Method.java:498)at cution.CommandLineWrapper.main(CommandLineWrapper.java:64)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost]]at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)at org.ContainerBase$StartChild.call(ContainerBase.java:1419)at org.ContainerBase$StartChild.call(ContainerBase.java:1409)at urrent.FutureTask.run(FutureTask.java:266)at urrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)at urrent.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 startat org.ContainerBase.startInternal(ContainerBase.java:947)at org.StandardHost.startInternal(StandardHost.java:872)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)... 6 common frames omitted
2023-11-13 10:25:38.994 [TID: N/A] [main] ERROR o.ContainerBase -A child container failed during start
urrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost]]at port(FutureTask.java:122)at (FutureTask.java:192)at org.ContainerBase.startInternal(ContainerBase.java:939)at org.StandardEngine.startInternal(StandardEngine.java:262)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)at org.StandardService.startInternal(StandardService.java:422)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)at org.StandardServer.startInternal(StandardServer.java:793)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)at org.apache.catalina.startup.Tomcat.start(Tomcat.java:344)at org.at.TomcatEmbeddedServletContainer.initialize(TomcatEmbeddedServletContainer.java:99)at org.at.TomcatEmbeddedServletContainer.<init>(TomcatEmbeddedServletContainer.java:84)at org.TomcatEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.java:554)at org.EmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.java:179)at org.t.ateEmbeddedServletContainer(EmbeddedWebApplicationContext.java:164)at org.t.Refresh(EmbeddedWebApplicationContext.java:134)at t.fresh(AbstractApplicationContext.java:537)at org.t.fresh(EmbeddedWebApplicationContext.java:122)at org.springframework.fresh(SpringApplication.java:693)at org.springframework.freshContext(SpringApplication.java:360)at org.springframework.boot.SpringApplication.run(SpringApplication.java:303)at org.springframework.boot.SpringApplication.run(SpringApplication.java:1118)at org.springframework.boot.SpringApplication.run(SpringApplication.java:1107)testApp.main(UserApp.java:24)flect.NativeMethodAccessorImpl.invoke0(Native Method)flect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)flect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at flect.Method.invoke(Method.java:498)at cution.CommandLineWrapper.main(CommandLineWrapper.java:64)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost]]at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)at org.ContainerBase$StartChild.call(ContainerBase.java:1419)at org.ContainerBase$StartChild.call(ContainerBase.java:1409)at urrent.FutureTask.run(FutureTask.java:266)at urrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)at urrent.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 startat org.ContainerBase.startInternal(ContainerBase.java:947)at org.StandardHost.startInternal(StandardHost.java:872)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)... 6 common frames omitted
提取关键报错信息如下:
Caused by: java.lang.NoSuchMethodError: javax.VirtualServerName()Ljava/lang/String;
一般情况下发下NoSuchMethodError
错误:大多数情况只有两种
1、jar缺失
2、jar冲突
于是点进报错代码,发现存在。Debug时,getVirtualServerName为红色
判定问题为jar冲突,于是进入maven准备去掉多余jar,发现只有一个,甚至去掉后,还是报同样的问题。
这个时候开始怀疑jar冲突方向排查是否正确,甚至产生疑惑。
借鉴使用其他项目时,发现tomcat版本为9 jdk一样,开始怀疑tomcat版本会冲突,这个时候的想法其实已经走偏了,走向不太理智的猜错。因为如果是版本冲突,最开始就会报错。
切换tomcat版本为8.5.43。启动虽然报错但总会发现了曙光:
***************************
APPLICATION FAILED TO START
***************************Description:An attempt was made to call the method javax.VirtualServerName()Ljava/lang/String; but it does not exist. Its class, javax.servlet.ServletContext, is available from the following locations:jar:file:/F:/work/lib/javax.servlet.jar!/javax/servlet/ServletContext.classjar:file:/G://doc/maven/repository/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0.jar!/javax/servlet/ServletContext.classjar:file:/G://doc/maven/repository/org/apache/tomcat/embed/tomcat-embed-core/8.5.43/tomcat-embed-core-8.5.43.jar!/javax/servlet/ServletContext.classIt was loaded from the following location:file:/F:/ideawork/lib/javax.servlet.jarAction:Correct the classpath of your application so that it contains a single, compatible version of javax.servlet.ServletContext
发现关键错误,因为tomcat版本的问题导致输出错误形式的内容不同,导致未发现关键信息:
报错确定是因为多个servlet-api.jar冲突导致,最初猜想正确。tomcat与jdk对应版本如下:
Servlet规格 | JSP规范 | EL规格 | WebSocket规范 | JASPIC规格 | Apache Tomcat版本 | 最新发行版本 | 支持的Java版本 |
---|---|---|---|---|---|---|---|
4.0 | 2.3 | 3.0 | 1.1 | 1.1 | 9.0.x | 9.0.27 | 8及更高版本 |
3.1 | 2.3 | 3.0 | 1.1 | 1.1 | 8.5.x | 8.5.47 | 7及更高版本 |
3.1 | 2.3 | 3.0 | 1.1 | 不适用 | 8.0.x(已取代) | 8.0.53(已取代) | 7及更高版本 |
3.0 | 2.2 | 2.2 | 1.1 | 不适用 | 7.0.x | 7.0.96 | 6及更高版本 (WebSocket为7及更高版本) |
2.5 | 2.1 | 2.1 | 不适用 | 不适用 | 6.0.x(已归档) | 6.0.53(已归档) | 5及更高版本 |
2.4 | 2.0 | 不适用 | 不适用 | 不适用 | 5.5.x(已存档) | 5.5.36(存档) | 1.4及更高版本 |
2.3 | 1.2 | 不适用 | 不适用 | 不适用 | 4.1.x(已归档) | 4.1.40(已归档) | 1.3及更高版本 |
2.2 | 1.1 | 不适用 | 不适用 | 不适用 | 3.3.x(已存档) | 3.3.2(已存档) | 1.1及更高版本 |
去除多余jar,保留一个,启动成功。
理智分析问题。
昆山玉碎凤凰叫,芙蓉泣露香兰笑。本文发布于:2024-02-03 04:29:40,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170690578048655.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |