0

I have developed my Vaadin application (v.23) and trying to deploy it to Tomcat 10.1.5 on Ubuntu box. I created a production build according to the Vaadin documentation and got a WAR file. I did place it to the webapps directory of the tomcat and tomcat did create a directory for my application with META-INF, WEB-INF and org/springframework/boot/loader subdirectories. However, my application wasn't showing up. I restarted tomcat and got exception stack trace:

SEVERE [main] org.apache.catalina.core.StandardContext.startInternal Error during ServletContainerInitializer processing
    jakarta.servlet.ServletException: This application requires Servlet 3 or 4 and the server you are running on (Apache Tomcat/10.1.5) supports Servlet 5+
            at com.vaadin.servletdetector.ThrowIfServlet5.onStartup(ThrowIfServlet5.java:13)
            at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5144)
            at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
            at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:726)
            at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:698)
            at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:747)
            at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:975)
            at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1949)
            at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
            at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
            at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
            at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:123)
            at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:776)
            at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:426)
            at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1656)
            at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:309)
            at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
            at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423)
            at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:366)
            at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:943)
            at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:886)
            at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
            at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1393)
            at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1383)
            at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
            at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
            at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145)
            at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:916)
            at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:252)
            at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
            at org.apache.catalina.core.StandardService.startInternal(StandardService.java:430)
            at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
            at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:926)
            at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
            at org.apache.catalina.startup.Catalina.start(Catalina.java:795)
            at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
            at java.base/java.lang.reflect.Method.invoke(Method.java:577)
            at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:347)
            at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:478)

I reviewed Vaadin docs and didn't find any limitation for deployment to Tomcat 10. Why Vaadin barfs on servlet 5 is beyond my understanding. Can anyone, please, tell me what to do to make it working?

Gary Greenberg
  • 468
  • 1
  • 9
  • 22

0 Answers0