Magnolia v6.2 atmosphere is unable to configure JSR-356

647 Views Asked by At

After upgrade Magnolia from v5.7.1 to v6.2 atmosphere is unable to configure JSR-356.

Magnolia v5.7 uses Vaadin v7 while Magnolia v6.2 uses Vaadin v8.

We use Apache Tomcat server v8.5.56.

org.atmosphere.util.IOUtils.guestRawServletPath 
java.lang.IllegalStateException: Unable to configure jsr356 at that stage. No Servlet associated with Admincentral-m5
    at org.atmosphere.util.IOUtils.guestRawServletPath(IOUtils.java:282)
    at org.atmosphere.util.IOUtils.guestServletPath(IOUtils.java:255)
    at org.atmosphere.container.JSR356AsyncSupport.<init>(JSR356AsyncSupport.java:65)
    at org.atmosphere.container.JSR356AsyncSupport.<init>(JSR356AsyncSupport.java:42)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at org.atmosphere.cpr.DefaultAsyncSupportResolver.newCometSupport(DefaultAsyncSupportResolver.java:237)
    at org.atmosphere.cpr.DefaultAsyncSupportResolver.resolveWebSocket(DefaultAsyncSupportResolver.java:308)
    at org.atmosphere.cpr.DefaultAsyncSupportResolver.resolve(DefaultAsyncSupportResolver.java:294)
    at org.atmosphere.cpr.AtmosphereFramework.autoDetectContainer(AtmosphereFramework.java:2092)
    at org.atmosphere.cpr.AtmosphereFramework.init(AtmosphereFramework.java:914)
    at org.atmosphere.cpr.AtmosphereFramework.init(AtmosphereFramework.java:838)
    at com.vaadin.server.communication.PushRequestHandler.initAtmosphere(PushRequestHandler.java:206)
    at com.vaadin.server.communication.PushRequestHandler.<init>(PushRequestHandler.java:79)
    at com.vaadin.server.VaadinServletService.createRequestHandlers(VaadinServletService.java:68)
    at info.magnolia.ui.admincentral.AdmincentralVaadinServlet$2.createRequestHandlers(AdmincentralVaadinServlet.java:244)
    at com.vaadin.server.VaadinService.init(VaadinService.java:217)
    at info.magnolia.ui.admincentral.AdmincentralVaadinServlet.createServletService(AdmincentralVaadinServlet.java:272)
    at com.vaadin.server.VaadinServlet.createServletService(VaadinServlet.java:380)
    at com.vaadin.server.VaadinServlet.init(VaadinServlet.java:210)
    at info.magnolia.cms.filters.ServletDispatchingFilter.initializeServlet(ServletDispatchingFilter.java:112)
    at info.magnolia.cms.filters.ServletDispatchingFilter.init(ServletDispatchingFilter.java:103)
    at info.magnolia.cms.filters.CompositeFilter.initFilters(CompositeFilter.java:92)
    at info.magnolia.cms.filters.CompositeFilter.init(CompositeFilter.java:82)
    at info.magnolia.cms.filters.CompositeFilter.initFilters(CompositeFilter.java:92)
    at info.magnolia.cms.filters.CompositeFilter.init(CompositeFilter.java:82)
    at info.magnolia.cms.filters.FilterManagerImpl.initRootFilter(FilterManagerImpl.java:175)
    at info.magnolia.cms.filters.FilterManagerImpl$2.doExec(FilterManagerImpl.java:112)
    at info.magnolia.context.MgnlContext$VoidOp.exec(MgnlContext.java:407)
    at info.magnolia.context.MgnlContext$VoidOp.exec(MgnlContext.java:404)
    at info.magnolia.context.MgnlContext.doInSystemContext(MgnlContext.java:378)
    at info.magnolia.cms.filters.FilterManagerImpl.init(FilterManagerImpl.java:107)
    at info.magnolia.cms.filters.MgnlMainFilter.init(MgnlMainFilter.java:84)
    at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:281)
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:262)
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:106)
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4538)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5181)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:743)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:719)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705)
    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:614)
    at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1822)
    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:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

Maybe someone can help solve this problem?

2

There are 2 best solutions below

0
Jan On

No Servlet associated with Admincentral-m5

Looks like you didn’t upgrade all your apps to use 6.x framework and have some that still rely on 5.x one, but haven’t installed compatibility modules at the same time. If that’s the case, adding compatibility modules to your bundle should take care of the app problem.

1
John Doe On

In web.xml file inside of provided Magnolia 6.2 webapp bundles you can find something like this:

      <!--  the following two parameters prevent atmosphere framework from attempting to install -->
      <!--  JSR-356 (not needed and causes issues with our servlet setup-->
      <context-param>
        <param-name>org.atmosphere.cpr.AtmosphereConfig.getInitParameter</param-name>
        <param-value>true</param-value>
      </context-param>
      <context-param>
        <param-name>org.atmosphere.websocket.suppressJSR356</param-name>
        <param-value>true</param-value>
      </context-param>

Adding it to your web.xml should remove that issue.