您的位置:首页 > 运维架构 > Tomcat

spring boot 1.4 打成jar包启动失败,报Failed to start component [StandardEngine[Tomcat].StandardHost[localhost

2017-05-15 10:58 633 查看
我用spring boot 1.4 整合jsp做了个简单的web界面。在eclipse中启动正常,但是打成jar包后运行报错,

java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[]]

        at java.util.concurrent.FutureTask.report(FutureTask.java:122)

        at java.util.concurrent.FutureTask.get(FutureTask.java:192)

        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:911)

        at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:890)

        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:152)

        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1403)

        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1393)

        at java.util.concurrent.FutureTask.run(FutureTask.java:266)

        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

        at java.util.concurrent.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].StandardContext[]]

        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:158)

        ... 6 common frames omitted

Caused by: org.apache.catalina.LifecycleException: Failed to start component [Pipeline[StandardEngine[Tomcat].StandardHost[localhost].StandardContext[]]]

        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:158)

        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5088)

        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:152)

        ... 6 common frames omitted

Caused by: org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.authenticator.NonLoginAuthenticator[]]

        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:158)

        at org.apache.catalina.core.StandardPipeline.startInternal(StandardPipeline.java:170)

        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:152)

        ... 8 common frames omitted

Caused by: java.lang.NoSuchMethodError: javax.servlet.ServletContext.getVirtualServerName()Ljava/lang/String;

        at org.apache.catalina.authenticator.AuthenticatorBase.startInternal(AuthenticatorBase.java:1085)

        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:152)

        ... 10 common frames omitted

2017-05-12 19:35:07 [ERROR][main]:org.apache.catalina.core.ContainerBase [log:181] A child container failed during start

java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost]]

        at java.util.concurrent.FutureTask.report(FutureTask.java:122)

        at java.util.concurrent.FutureTask.get(FutureTask.java:192)

        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:911)

        at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)

        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:152)

        at org.apache.catalina.core.StandardService.startInternal(StandardService.java:422)

        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:152)

        at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:791)

        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:152)

        at org.apache.catalina.startup.Tomcat.start(Tomcat.java:356)

        at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.initialize(TomcatEmbeddedServletContainer.java:97)

        at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.<init>(TomcatEmbeddedServletContainer.java:83)

        at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.getTomcatEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.java:530)

        at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.getEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.java:176)

        at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.createEmbeddedServletContainer(EmbeddedWebApplicationContext.java:164)

        at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:134)

        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:535)

        at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)

        at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:759)

        at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:369)

        at org.springframework.boot.SpringApplication.run(SpringApplication.java:313)

        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1185)

        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1174)

        at com.zyjr.adapters.DataMainApplication.main(DataMainApplication.java:92)

        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

        at java.lang.reflect.Method.invoke(Method.java:498)

        at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48)

        at org.springframework.boot.loader.Launcher.launch(Launcher.java:87)

        at org.springframework.boot.loader.Launcher.launch(Launcher.java:50)

        at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:58)

Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost]]

        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:158)

        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1403)

        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1393)

        at java.util.concurrent.FutureTask.run(FutureTask.java:266)

        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

        at java.util.concurrent.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 start

        at org
4000
.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:919)

        at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:890)

        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:152)

        ... 6 common frames omitted

2017-05-12 19:35:07 [WARN][main]:o.s.b.c.e.AnnotationConfigEmbeddedWebApplicationContext [refresh:549] Exception encountered during context initialization - cancelling refresh attempt: org.springframework.context.ApplicationContextException: Unable to start
embedded container; nested exception is org.springframework.boot.context.embedded.EmbeddedServletContainerException: Unab

2017-05-12 19:35:07 [ERROR][main]:org.springframework.boot.SpringApplication [reportFailure:838] Application startup failed

org.springframework.context.ApplicationContextException: Unable to start embedded container; nested exception is org.springframework.boot.context.embedded.EmbeddedServletContainerException: Unable to start embedded Tomcat

        at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:137)

        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:535)

        at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)

        at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:759)

        at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:369)

        at org.springframework.boot.SpringApplication.run(SpringApplication.java:313)

        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1185)

        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1174)

        at com.zyjr.adapters.DataMainApplication.main(DataMainApplication.java:92)

        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

        at java.lang.reflect.Method.invoke(Method.java:498)

        at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48)

        at org.springframework.boot.loader.Launcher.launch(Launcher.java:87)

        at org.springframework.boot.loader.Launcher.launch(Launcher.java:50)

        at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:58)

Caused by: org.springframework.boot.context.embedded.EmbeddedServletContainerException: Unable to start embedded Tomcat

        at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.initialize(TomcatEmbeddedServletContainer.java:116)

        at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.<init>(TomcatEmbeddedServletContainer.java:83)

        at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.getTomcatEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.java:530)

        at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.getEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.java:176)

        at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.createEmbeddedServletContainer(EmbeddedWebApplicationContext.java:164)

        at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:134)

        ... 16 common frames omitted

Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardServer[-1]]

        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:158)

        at org.apache.catalina.startup.Tomcat.start(Tomcat.java:356)

        at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.initialize(TomcatEmbeddedServletContainer.java:97)

        ... 21 common frames omitted

Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardService[Tomcat]]

        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:158)

        at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:791)

        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:152)

        ... 23 common frames omitted

Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat]]

        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:158)

        at org.apache.catalina.core.StandardService.startInternal(StandardService.java:422)

        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:152)

        ... 25 common frames omitted

Caused by: org.apache.catalina.LifecycleException: A child container failed during start

        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:919)

        at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)

        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:152)

        ... 27 common frames omitted

仔细看了看错误日志,发现有一段:java.lang.NoSuchMethodError: javax.servlet.ServletContext.getVirtualServerName()Ljava/lang/String;

于是怀疑是jar包冲突,查找了一些相关资料,发现是servlet-api中的类和tomcat-embed-core中的ServletContext类冲突了,

然后就打开pom文件

找到servlet-api,

然后右击exclude,再次打包,就运行正常了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring boot jsp servlet
相关文章推荐