Hi all,
my Vaadin 8 application (version 8.1.5) is throwing an exception when it executes on Tomcat 7 (version 7.0.69) - but apparently it still works.
SEVERE: Unable to load class {}. Please make sure you have properly installed Atmosphere http://goo.gl/KEi8pc
java.lang.NoClassDefFoundError: org/apache/catalina/comet/CometEvent
at org.atmosphere.container.Tomcat7CometSupport.<init>(Tomcat7CometSupport.java:62)
at org.atmosphere.container.Tomcat7AsyncSupportWithWebSocket.<init>(Tomcat7AsyncSupportWithWebSocket.java:52)
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:253)
at org.atmosphere.cpr.AtmosphereFramework.doInitParams(AtmosphereFramework.java:1457)
at org.atmosphere.cpr.AtmosphereFramework.doInitParams(AtmosphereFramework.java:1432)
at org.atmosphere.cpr.AtmosphereFramework.init(AtmosphereFramework.java:878)
at org.atmosphere.cpr.AtmosphereFramework.init(AtmosphereFramework.java:838)
at com.vaadin.server.communication.PushRequestHandler.initAtmosphere(PushRequestHandler.java:216)
at com.vaadin.server.communication.PushRequestHandler.<init>(PushRequestHandler.java:84)
at com.vaadin.server.VaadinServletService.createRequestHandlers(VaadinServletService.java:53)
at com.vaadin.server.VaadinService.init(VaadinService.java:196)
at com.vaadin.server.VaadinServlet.createServletService(VaadinServlet.java:334)
at com.vaadin.server.VaadinServlet.init(VaadinServlet.java:228)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1282)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1195)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:866)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:134)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:436)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Does anyone have experienced the same situation? I believe that it is related to my web.xml configuration:
<context-param>
<param-name>productionMode</param-name>
<param-value>false</param-value>
</context-param>
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>com.example.MyServlet</servlet-class>
<init-param>
<param-name>UI</param-name>
<param-value>com.example.MyUI</param-value>
</init-param>
<init-param>
<param-name>widgetset</param-name>
<param-value>AppWidgetset</param-value>
</init-param>
<init-param>
<param-name>org.atmosphere.cpr.asyncSupport</param-name>
<param-value>org.atmosphere.container.Tomcat7AsyncSupportWithWebSocket</param-value>
</init-param>
<async-supported>true</async-supported>
</servlet>
<session-config>
<session-timeout>10000</session-timeout>
</session-config>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/vaadin/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/VAADIN/*</url-pattern>
</servlet-mapping>