Search code examples
jakarta-eevaadin7atmospherewildfly-8

Vaadin 7, Atmosphere and Server Push problems


I've started to build a project using the Maven archetype for Vaadin 7.2.4 and am getting a lot of errors thrown up relating to Atmosphere startup issues. As things stand, I won't be able to enable push support which I'd require to use an addon (OAuthButtonPopup). Although there's lots of general chat about Atmosphere, I can't seem to find anything specific to this issue so am wondering if there is an installation/configuration issue on my side, particularly as there seem to be attempts to instantiate some classes relating to Jetty which doesn't seem relevant to my installation.

Current setup as follows: Java 8 SDK, Java EE7 JDK, Idea IntelliJ 13, Vaadin 7.2.4 and Wildfly 8.

Any pointers would be much appreciated.

Error trace on deployment as follows:

[2014-07-17 10:21:10,394] Artifact OAuthPopupTest:war: Artifact is being deployed, please wait...
[0m22:21:10,540 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-1) JBAS015876: Starting deployment of "OAuthPopupTest-1.0-SNAPSHOT.war" (runtime-name: "OAuthPopupTest-1.0-SNAPSHOT.war")
[0m[33m22:21:12,921 WARN  [org.jboss.as.server.deployment] (MSC service thread 1-14) JBAS015960: Class Path entry xml-apis.jar in /content/OAuthPopupTest-1.0-SNAPSHOT.war/WEB-INF/lib/serializer-2.7.1.jar  does not point to a valid jar for a Class-Path reference.
[0m[33m22:21:13,286 WARN  [org.jboss.as.ee] (MSC service thread 1-8) JBAS011006: Not installing optional component org.eclipse.jetty.continuation.Servlet3Continuation$1 due to an exception (enable DEBUG log level to see the cause)
[0m[33m22:21:13,287 WARN  [org.jboss.as.ee] (MSC service thread 1-8) JBAS011006: Not installing optional component org.eclipse.jetty.continuation.Servlet3Continuation$2 due to an exception (enable DEBUG log level to see the cause)
[0m[0m22:21:13,540 INFO  [org.wildfly.extension.undertow] (MSC service thread 1-14) JBAS017534: Registered web context: /OAuthPopupTest-1.0-SNAPSHOT
[0m[0m22:21:13,557 INFO  [org.jboss.as.server] (management-handler-thread - 2) JBAS018559: Deployed "OAuthPopupTest-1.0-SNAPSHOT.war" (runtime-name : "OAuthPopupTest-1.0-SNAPSHOT.war")
[0m[2014-07-17 10:21:13,578] Artifact OAuthPopupTest:war: Artifact is deployed successfully
[2014-07-17 10:21:13,579] Artifact OAuthPopupTest:war: Deploy took 3,185 milliseconds
[33m22:21:13,949 WARNING [com.vaadin.server.DefaultDeploymentConfiguration] (default task-1) 
=================================================================
Vaadin is running in DEBUG MODE.
Add productionMode=true to web.xml to disable debug features.
To show debug window, add ?debug to your application URL.
=================================================================
[0m[0m22:21:13,989 INFO  [org.atmosphere.cpr.AtmosphereFramework] (default task-1) Installed AtmosphereHandler com.vaadin.server.communication.PushHandler$1 mapped to context-path: /*
[0m[0m22:21:13,990 INFO  [org.atmosphere.cpr.AtmosphereFramework] (default task-1) Installed the following AtmosphereInterceptor mapped to AtmosphereHandler com.vaadin.server.communication.PushHandler$1
[0m[33m22:21:13,995 WARNING [org.atmosphere.cpr.AtmosphereFramework] (default task-1) SessionSupport error. Make sure you define org.atmosphere.cpr.SessionSupport as a listener in web.xml instead
[0m[0m22:21:14,003 INFO  [org.atmosphere.cpr.AtmosphereFramework] (default task-1) Atmosphere is using org.atmosphere.cpr.DefaultAnnotationProcessor for processing annotation
[0m[0m22:21:14,003 INFO  [org.atmosphere.cpr.DefaultAnnotationProcessor] (default task-1) AnnotationProcessor class org.atmosphere.cpr.DefaultAnnotationProcessor$ServletContainerInitializerAnnotationProcessor being used
[0m[33m22:21:14,005 WARNING [org.atmosphere.cpr.DefaultAnnotationProcessor] (default task-1) Unable to detect annotations. Application may fail to deploy.
[0m[0m22:21:14,039 INFO  [org.atmosphere.cpr.AtmosphereFramework] (default task-1) Auto detecting WebSocketHandler in /WEB-INF/classes/
[0m[0m22:21:14,047 INFO  [org.atmosphere.cpr.AtmosphereFramework] (default task-1) Installed WebSocketProtocol org.atmosphere.websocket.protocol.SimpleHttpProtocol 
[0m[31m22:21:14,054 SEVERE [org.atmosphere.cpr.DefaultAsyncSupportResolver] (default task-1) failed to create comet support class: class org.atmosphere.container.JettyServlet30AsyncSupportWithWebSocket, error: null
[0m[31m22:21:14,054 SEVERE [org.atmosphere.cpr.AtmosphereFramework] (default task-1) Failed to initialize Atmosphere Framework: java.lang.IllegalArgumentException: Unable to createclass org.atmosphere.container.JettyServlet30AsyncSupportWithWebSocket
    at org.atmosphere.cpr.DefaultAsyncSupportResolver.newCometSupport(DefaultAsyncSupportResolver.java:229) [atmosphere-runtime-2.1.2.vaadin2.jar:2.1.2.vaadin2]
    at org.atmosphere.cpr.DefaultAsyncSupportResolver.resolveWebSocket(DefaultAsyncSupportResolver.java:288) [atmosphere-runtime-2.1.2.vaadin2.jar:2.1.2.vaadin2]
    at org.atmosphere.cpr.DefaultAsyncSupportResolver.resolve(DefaultAsyncSupportResolver.java:274) [atmosphere-runtime-2.1.2.vaadin2.jar:2.1.2.vaadin2]
    at org.atmosphere.cpr.AtmosphereFramework.autoDetectContainer(AtmosphereFramework.java:1591) [atmosphere-runtime-2.1.2.vaadin2.jar:2.1.2.vaadin2]
    at org.atmosphere.cpr.AtmosphereFramework.init(AtmosphereFramework.java:717) [atmosphere-runtime-2.1.2.vaadin2.jar:2.1.2.vaadin2]
    at org.atmosphere.cpr.AtmosphereFramework.init(AtmosphereFramework.java:614) [atmosphere-runtime-2.1.2.vaadin2.jar:2.1.2.vaadin2]
    at com.vaadin.server.communication.PushRequestHandler.<init>(PushRequestHandler.java:120) [vaadin-server-7.2.4.jar:7.2.4]
    at com.vaadin.server.VaadinServletService.createRequestHandlers(VaadinServletService.java:92) [vaadin-server-7.2.4.jar:7.2.4]
    at com.vaadin.server.VaadinService.init(VaadinService.java:180) [vaadin-server-7.2.4.jar:7.2.4]
    at com.vaadin.server.VaadinServlet.createServletService(VaadinServlet.java:190) [vaadin-server-7.2.4.jar:7.2.4]
    at com.vaadin.server.VaadinServlet.init(VaadinServlet.java:96) [vaadin-server-7.2.4.jar:7.2.4]
    at io.undertow.servlet.core.ManagedServlet$DefaultInstanceStrategy.start(ManagedServlet.java:214) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final]
    at io.undertow.servlet.core.ManagedServlet.getServlet(ManagedServlet.java:157) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final]
    at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:84) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final]
    at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:61) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final]
    at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final]
    at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.15.Final.jar:1.0.15.Final]
    at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:113) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final]
    at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:56) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final]
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.15.Final.jar:1.0.15.Final]
    at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:45) [undertow-core-1.0.15.Final.jar:1.0.15.Final]
    at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:61) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final]
    at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:58) [undertow-core-1.0.15.Final.jar:1.0.15.Final]
    at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:70) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final]
    at io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76) [undertow-core-1.0.15.Final.jar:1.0.15.Final]
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.15.Final.jar:1.0.15.Final]
    at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.15.Final.jar:1.0.15.Final]
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.15.Final.jar:1.0.15.Final]
    at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:240) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final]
    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:227) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final]
    at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:73) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final]
    at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:146) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final]
    at io.undertow.server.Connectors.executeRootHandler(Connectors.java:177) [undertow-core-1.0.15.Final.jar:1.0.15.Final]
    at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:727) [undertow-core-1.0.15.Final.jar:1.0.15.Final]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_05]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_05]
    at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_05]
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) [rt.jar:1.8.0_05]
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) [rt.jar:1.8.0_05]
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) [rt.jar:1.8.0_05]
    at java.lang.reflect.Constructor.newInstance(Constructor.java:408) [rt.jar:1.8.0_05]
    at org.atmosphere.cpr.DefaultAsyncSupportResolver.newCometSupport(DefaultAsyncSupportResolver.java:225) [atmosphere-runtime-2.1.2.vaadin2.jar:2.1.2.vaadin2]
    ... 38 more
Caused by: java.lang.NoClassDefFoundError: org/eclipse/jetty/websocket/WebSocketFactory$Acceptor
    at org.atmosphere.container.JettyServlet30AsyncSupportWithWebSocket.<init>(JettyServlet30AsyncSupportWithWebSocket.java:46) [atmosphere-runtime-2.1.2.vaadin2.jar:2.1.2.vaadin2]
    ... 43 more
Caused by: java.lang.ClassNotFoundException: org.eclipse.jetty.websocket.WebSocketFactory$Acceptor from [Module "deployment.OAuthPopupTest-1.0-SNAPSHOT.war:main" from Service Module Loader]
    at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:213) [jboss-modules.jar:1.3.3.Final]
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:459) [jboss-modules.jar:1.3.3.Final]
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:408) [jboss-modules.jar:1.3.3.Final]
    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:389) [jboss-modules.jar:1.3.3.Final]
    at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:134) [jboss-modules.jar:1.3.3.Final]

Solution

  • For me it looks like there are libraries included in your war package that should not be packed. You might look into your war to see what jar dependencies are included. Maybe some parts of jetty. You could use

    mvn dependency:tree
    

    to see where they come from and exclude them if necessary.

    And to enable push this wiki page describes all the required steps: https://vaadin.com/wiki/-/wiki/Main/Enabling%20server%20push