2016-01-21 30 views
0

我正在尝试将Spring应用程序部署到运行Apache Tomcat的服务器。然而,我得到这个错误:无法部署到运行Tomcat的服务器

SEVERE: ContainerBase.addChild: start: … org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/RuralIvrs]] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901) … at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633) at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:976) at 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) 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: java.lang.NoSuchMethodError: javax.servlet.ServletContext.getVirtualServerName()Ljava/lang/String; at org.apache.tomcat.websocket.server.WsServerContainer.(WsServerContainer.java:147) at org.apache.tomcat.websocket.server.WsSci.init(WsSci.java:131) at org.apache.tomcat.websocket.server.WsSci.onStartup(WsSci.java:47) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5423) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ... 10 more

Jan 21, 2016 12:16:42 PM org.apache.catalina.startup.HostConfig deployWAR … SEVERE: Error deploying web application archive /home/ruralivrs/Ruralict/apache-tomcat-7.0.42/webapps/RuralIvrs.war java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/RuralIvrs]] at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:904) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633) at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:976) at 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) 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)

我搜索了几个小时后无法找到解决方案。由于我对此很新,任何帮助将不胜感激。谢谢!

+0

我猜你正在使用'Spring Boot',是否正确?你试图运行一个Tomcat 7,是吗? –

+0

发布完整的例外消息 –

+0

我很高兴,似乎你已经找到了解决方案。您可能会分享给未来的读者什么解决您的问题;) –

回答

1

this blog post中可以找到类似的问题。

的解决方案可能是添加一个tomcat.version属性,你的Maven的pom.xml

<properties> 
    <tomcat.version>7.0.67</tomcat.version> 
</properties> 

原因是春季启动文档中解释为embedded-servlet-containers一样简单。
Spring Boot默认为Tomcat 8,所以你需要告诉Spring Boot你的目标是Tomcat 7

+0

谢谢!我必须弄清楚如何将它包含在Gradle中。 – raptor123

+0

在Gradle中它会是:'ext ['tomcat.version'] ='7.0.67'' –

+0

我补充:ext ['tomcat.version'] ='7.0.42'不幸的是它没有工作。 – raptor123

相关问题