Search code examples
primefacesatmosphere

PrimeFaces 5 push: atmosphere-runtime-native not working


After migrating from PF 4 to PF 5 push stopped working, I get a "No Broadcaster matches ..." error.

First I thought it would be some incompatibility with the old push API, but it happens with the new API too.

Replacing atmosphere-runtime-native with the default atmosphere-runtime push works, but its not a solution because I had some problems with it in production.

Tested with PF 5.0.3 + Atmosphere 2.1.6 + Tomcat 7.0.52.

Do I need some additional configuration or dependency to use atmosphere-runtime-native with PrimeFaces 5?

Thanks

server log: (using notify example from PrimeFaces showcase)

[http-nio-8080-exec-7] INFO org.atmosphere.cpr.AtmosphereFramework - Atmosphere is using org.atmosphere.cpr.DefaultAnnotationProcessor for processing annotation
[http-nio-8080-exec-7] INFO org.atmosphere.cpr.DefaultAnnotationProcessor - AnnotationProcessor class org.atmosphere.cpr.DefaultAnnotationProcessor$BytecodeBasedAnnotationProcessor being used
[http-nio-8080-exec-7] INFO org.atmosphere.cpr.DefaultAnnotationProcessor - Found Annotation in org.primefaces.push.impl.PushEndpointInterceptor being scanned: interface org.atmosphere.config.service.AtmosphereInterceptorService
[http-nio-8080-exec-7] INFO org.atmosphere.cpr.DefaultAnnotationProcessor - Found Annotation in org.primefaces.push.impl.PushEndpointMapper being scanned: interface org.atmosphere.config.service.EndpointMapperService
[http-nio-8080-exec-7] INFO org.atmosphere.cpr.AtmosphereFramework - Auto detecting atmosphere handlers /WEB-INF/classes/
[http-nio-8080-exec-7] INFO org.atmosphere.cpr.AtmosphereFramework - Auto detecting WebSocketHandler in /WEB-INF/classes/
[http-nio-8080-exec-7] INFO org.atmosphere.cpr.AtmosphereFramework - Installed WebSocketProtocol org.atmosphere.websocket.protocol.SimpleHttpProtocol 
[http-nio-8080-exec-7] INFO org.atmosphere.cpr.AtmosphereFramework - Installing Default AtmosphereInterceptor
[http-nio-8080-exec-7] INFO org.atmosphere.cpr.AtmosphereFramework -    org.atmosphere.interceptor.CorsInterceptor : CORS Interceptor Support
[http-nio-8080-exec-7] INFO org.atmosphere.cpr.AtmosphereFramework -    org.atmosphere.interceptor.CacheHeadersInterceptor : Default Response's Headers Interceptor
[http-nio-8080-exec-7] INFO org.atmosphere.cpr.AtmosphereFramework -    org.atmosphere.interceptor.PaddingAtmosphereInterceptor : Browser Padding Interceptor Support
[http-nio-8080-exec-7] INFO org.atmosphere.cpr.AtmosphereFramework -    org.atmosphere.interceptor.AndroidAtmosphereInterceptor : Android Interceptor Support
[http-nio-8080-exec-7] INFO org.atmosphere.cpr.AtmosphereFramework -    org.atmosphere.interceptor.HeartbeatInterceptor : Heartbeat Interceptor Support
[http-nio-8080-exec-7] INFO org.atmosphere.cpr.AtmosphereFramework -    org.atmosphere.interceptor.SSEAtmosphereInterceptor : SSE Interceptor Support
[http-nio-8080-exec-7] INFO org.atmosphere.cpr.AtmosphereFramework -    org.atmosphere.interceptor.JSONPAtmosphereInterceptor : JSONP Interceptor Support
[http-nio-8080-exec-7] INFO org.atmosphere.cpr.AtmosphereFramework -    org.atmosphere.interceptor.JavaScriptProtocol : Atmosphere JavaScript Protocol
[http-nio-8080-exec-7] INFO org.atmosphere.cpr.AtmosphereFramework -    org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor : org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor
[http-nio-8080-exec-7] INFO org.atmosphere.cpr.AtmosphereFramework -    org.atmosphere.interceptor.OnDisconnectInterceptor : Browser disconnection detection
[http-nio-8080-exec-7] INFO org.atmosphere.cpr.AtmosphereFramework -    org.atmosphere.interceptor.IdleResourceInterceptor : org.atmosphere.interceptor.IdleResourceInterceptor
[http-nio-8080-exec-7] INFO org.atmosphere.cpr.AtmosphereFramework - Set org.atmosphere.cpr.AtmosphereInterceptor.disableDefaults to disable them.
[http-nio-8080-exec-7] INFO org.atmosphere.cpr.AtmosphereFramework - Using EndpointMapper class org.primefaces.push.impl.PushEndpointMapper
[http-nio-8080-exec-7] WARN org.atmosphere.cpr.AtmosphereFramework - No BroadcasterCache configured. Broadcasted message between client reconnection will be LOST. It is recommended to configure the org.atmosphere.cache.UUIDBroadcasterCache
[http-nio-8080-exec-7] INFO org.atmosphere.cpr.AtmosphereFramework - Default Broadcaster Class: org.atmosphere.cpr.DefaultBroadcaster
[http-nio-8080-exec-7] INFO org.atmosphere.cpr.AtmosphereFramework - Broadcaster Polling Wait Time 100
[http-nio-8080-exec-7] INFO org.atmosphere.cpr.AtmosphereFramework - Shared ExecutorService supported: true
[http-nio-8080-exec-7] INFO org.atmosphere.cpr.AtmosphereFramework - Messaging Thread Pool Size: Unlimited
[http-nio-8080-exec-7] INFO org.atmosphere.cpr.AtmosphereFramework - Async I/O Thread Pool Size: 200
[http-nio-8080-exec-7] INFO org.atmosphere.cpr.AtmosphereFramework - Using BroadcasterFactory: org.atmosphere.cpr.DefaultBroadcasterFactory
[http-nio-8080-exec-7] INFO org.atmosphere.cpr.AtmosphereFramework - Using WebSocketProcessor: org.atmosphere.websocket.DefaultWebSocketProcessor
[http-nio-8080-exec-7] INFO org.atmosphere.cpr.AtmosphereFramework - HttpSession supported: false
[http-nio-8080-exec-7] INFO org.atmosphere.cpr.AtmosphereFramework - Atmosphere is using DefaultAtmosphereObjectFactory for dependency injection and object creation
[http-nio-8080-exec-7] INFO org.atmosphere.cpr.AtmosphereFramework - Atmosphere is using async support: org.atmosphere.container.Tomcat7AsyncSupportWithWebSocket running under container: Apache Tomcat/7.0.52
[http-nio-8080-exec-7] INFO org.atmosphere.cpr.AtmosphereFramework - Atmosphere Framework 2.1.6 started.
[http-nio-8080-exec-7] INFO org.atmosphere.cpr.AtmosphereFramework - 

    For Atmosphere Framework Commercial Support, visit 
    http://www.async-io.org/ or send an email to support@async-io.org

[http-nio-8080-exec-7] INFO org.atmosphere.cpr.AtmosphereFramework - Installed AtmosphereInterceptor @PushEndpoint Interceptor with priority AFTER_DEFAULT 
[http-nio-8080-exec-7] INFO org.atmosphere.cpr.AtmosphereServlet - AtmosphereServlet with native support for Tomcat 6/7 and JBossWeb Installed.
[Thread-9] INFO org.atmosphere.cpr.AtmosphereFramework - Latest version of Atmosphere's JavaScript Client 2.2.2
[http-nio-8080-exec-3] WARN org.atmosphere.cpr.MetaBroadcaster - No Broadcaster matches /notify. Message javax.faces.application.FacesMessage@1e64262c WILL BE LOST. Make sure you cache it or make sure the Broadcaster exists before.

Solution

  • Solution was switching to the regular atmosphere-runtime.

    More details here: https://code.google.com/p/primefaces/issues/detail?id=7189