我正在尝试将Spring应用程序部署到运行Apache Tomcat的服务器上。但是,我收到了这个错误:
SEVERE:ContainerBase.addChild:start:... org.apache.catalina.LifecycleException:无法启动组件 [StandardEngine [卡塔利娜] .StandardHost [本地主机] .StandardContext [/ RuralIvrs]] 在org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) 在org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901) ... 在org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) 在org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633) 在org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:976) 在org.apache.catalina.startup.HostConfig $ DeployWar.run(HostConfig.java:1653) at java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) 在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:617) 在java.lang.Thread.run(Thread.java:745)引起:java.lang.NoSuchMethodError: javax.servlet.ServletContext.getVirtualServerName()Ljava /郎/字符串; 在org.apache.tomcat.websocket.server.WsServerContainer。(WsServerContainer.java:147) 在org.apache.tomcat.websocket.server.WsSci.init(WsSci.java:131) 在org.apache.tomcat.websocket.server.WsSci.onStartup(WsSci.java:47) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5423) 在org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ......还有10个
2016年1月21日下午12:16:42 org.apache.catalina.startup.HostConfig deployWAR ...严重:部署Web应用程序存档时出错 /home/ruralivrs/Ruralict/apache-tomcat-7.0.42/webapps/RuralIvrs.war java.lang.IllegalStateException:ContainerBase.addChild:start: org.apache.catalina.LifecycleException:无法启动组件 [StandardEngine [卡塔利娜] .StandardHost [本地主机] .StandardContext [/ RuralIvrs]] 在org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:904) 在org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) 在org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633) 在org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:976) 在org.apache.catalina.startup.HostConfig $ DeployWar.run(HostConfig.java:1653) at java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) 在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:617) 在java.lang.Thread.run(Thread.java:745)
搜索几个小时后我找不到解决方法。由于我对此很陌生,所以任何帮助都将不胜感激。谢谢!
答案 0 :(得分:1)
您可以在this blog post中找到类似的问题。
解决方案可能就像在Maven项目的pom.xml文件中添加tomcat.version
属性一样简单
<properties>
<tomcat.version>7.0.67</tomcat.version>
</properties>
在embedded-servlet-containers的Spring Boot文档中解释了原因
Spring Boot默认为Tomcat 8
,因此您需要告诉Spring Boot您的目标是Tomcat 7
。