Vaadin war on Heroku issues/experience

Hi all,
I made a test to deploy a vaadin app on heroku and I have to say it is impressively simple (well, depends on your needs maybe, mine was a test).

Two things didn’t work out of the box:

  1. the Webservlet needs to be configured for async support: @WebServlet(value = "/*", asyncSupported = true)
  2. There is an exception on startup, that I am not able to solve. Is there anyone that has an idea what that means? The application works, but I am a bit afraid on possible ramifications. here the exception:
    SEVERE: Real error: Unable to configure jsr356 at that stage. ServerContainer is null 2018-10-10T07:56:45.374937+00:00 app[web.1] : java.lang.IllegalStateException: Unable to configure jsr356 at that stage. ServerContainer is null 2018-10-10T07:56:45.374938+00:00 app[web.1] : at org.atmosphere.container.JSR356AsyncSupport.<init>(JSR356AsyncSupport.java:53) 2018-10-10T07:56:45.374940+00:00 app[web.1] : at org.atmosphere.container.JSR356AsyncSupport.<init>(JSR356AsyncSupport.java:42) 2018-10-10T07:56:45.374941+00:00 app[web.1] : at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 2018-10-10T07:56:45.374943+00:00 app[web.1] : at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 2018-10-10T07:56:45.374944+00:00 app[web.1] : at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 2018-10-10T07:56:45.374946+00:00 app[web.1] : at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 2018-10-10T07:56:45.374947+00:00 app[web.1] : at org.atmosphere.cpr.DefaultAsyncSupportResolver.newCometSupport(DefaultAsyncSupportResolver.java:237) 2018-10-10T07:56:45.374949+00:00 app[web.1] : at org.atmosphere.cpr.DefaultAsyncSupportResolver.resolveWebSocket(DefaultAsyncSupportResolver.java:308) 2018-10-10T07:56:45.374951+00:00 app[web.1] : at org.atmosphere.cpr.DefaultAsyncSupportResolver.resolve(DefaultAsyncSupportResolver.java:294) 2018-10-10T07:56:45.374952+00:00 app[web.1] : at org.atmosphere.cpr.AtmosphereFramework.autoDetectContainer(AtmosphereFramework.java:2085) 2018-10-10T07:56:45.374954+00:00 app[web.1] : at org.atmosphere.cpr.AtmosphereFramework.init(AtmosphereFramework.java:914) 2018-10-10T07:56:45.374956+00:00 app[web.1] : at org.atmosphere.cpr.AtmosphereFramework.init(AtmosphereFramework.java:838) 2018-10-10T07:56:45.374957+00:00 app[web.1] : at com.vaadin.server.communication.PushRequestHandler.initAtmosphere(PushRequestHandler.java:212) 2018-10-10T07:56:45.374959+00:00 app[web.1] : at com.vaadin.server.communication.JSR356WebsocketInitializer.initAtmosphereForVaadinServlet(JSR356WebsocketInitializer.java:152) 2018-10-10T07:56:45.374961+00:00 app[web.1] : at com.vaadin.server.communication.JSR356WebsocketInitializer.contextInitialized(JSR356WebsocketInitializer.java:118) 2018-10-10T07:56:45.374963+00:00 app[web.1] : at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4643) 2018-10-10T07:56:45.374965+00:00 app[web.1] : at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5109) 2018-10-10T07:56:45.374966+00:00 app[web.1] : at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) 2018-10-10T07:56:45.374969+00:00 app[web.1] : at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1429) 2018-10-10T07:56:45.374970+00:00 app[web.1] : at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1419) 2018-10-10T07:56:45.374972+00:00 app[web.1] : at java.util.concurrent.FutureTask.run(FutureTask.java:266) 2018-10-10T07:56:45.374973+00:00 app[web.1] : at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) 2018-10-10T07:56:45.374975+00:00 app[web.1] : at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134) 2018-10-10T07:56:45.374976+00:00 app[web.1] : at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:944) 2018-10-10T07:56:45.374978+00:00 app[web.1] : at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:839) 2018-10-10T07:56:45.374979+00:00 app[web.1] : at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) 2018-10-10T07:56:45.374981+00:00 app[web.1] : at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1429) 2018-10-10T07:56:45.374982+00:00 app[web.1] : at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1419) 2018-10-10T07:56:45.374984+00:00 app[web.1] : at java.util.concurrent.FutureTask.run(FutureTask.java:266) 2018-10-10T07:56:45.374985+00:00 app[web.1] : at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) 2018-10-10T07:56:45.374987+00:00 app[web.1] : at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134) 2018-10-10T07:56:45.374989+00:00 app[web.1] : at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:944) 2018-10-10T07:56:45.374990+00:00 app[web.1] : at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:261) 2018-10-10T07:56:45.374992+00:00 app[web.1] : at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) 2018-10-10T07:56:45.374993+00:00 app[web.1] : at org.apache.catalina.core.StandardService.startInternal(StandardService.java:422) 2018-10-10T07:56:45.374995+00:00 app[web.1] : at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) 2018-10-10T07:56:45.374997+00:00 app[web.1] : at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:770) 2018-10-10T07:56:45.374998+00:00 app[web.1] : at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) 2018-10-10T07:56:45.375000+00:00 app[web.1] : at org.apache.catalina.startup.Tomcat.start(Tomcat.java:370) 2018-10-10T07:56:45.375002+00:00 app[web.1] : at webapp.runner.launch.Main.main(Main.java:289)

Cheers,
Andrea

help this? https://vaadin.com/forum/thread/15712598

Thanks for the reply Petr. The problem you link to seems related to Jetty being packaged in the war. In my case I don’t have that and the problem comes from the tomcat environment. So I am still not sure what could be the problem.