0
votes

I am trying to deploy a Spring application to server running Apache Tomcat. However, I get this error:

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)

I was unable to find a solution after searching for several hours. Since I am quite new to this, any help would be greatly appreciated. Thank you!

1
I guess you are using Spring Boot, true? And you are trying to run a Tomcat 7, yes?G. Demecki
post complete exception messageGajendra Kumar
I'm glad, it seems you've found a solution. You may share for future readers what exactly solved your problem ;)G. Demecki

1 Answers

1
votes

You can find similar problem in this blog post.

The solution is probably as simple as adding a tomcat.version property to your Maven project’s pom.xml file

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

The reason is explained inside Spring Boot documentation for embedded-servlet-containers.
Spring Boot defaults to Tomcat 8, so you need to tell Spring Boot that your target is Tomcat 7.