No Annotated class using @PushEndpoint

UI Components for JSF
Post Reply
michau
Posts: 1
Joined: 17 Oct 2015, 09:31

17 Oct 2015, 09:52

Hello,

for few days im facing with proper configuration primepush with spring boot.
I would like to implement /counter showcase but still without any success. Application inform me via console that
No Annotated class using @PushEndpoint found. Push will not work.
i would really appreciate if you could help me, and tell me why PushServlet doesn't detect @PushEndpoint annotation?

Used dependencies :

Code: Select all

* Spring boot 1.3.0.M5
* Primefaces 5.2
* Atmosphere-Runtime 2.3.5
My servlets initializations

Code: Select all

 @Bean
    public ServletRegistrationBean facesServletRegistration() {
        ServletRegistrationBean registration = new ServletRegistrationBean(new FacesServlet(), new String[]{"*.xhtml"});
        registration.setName("Faces Servlet");
        return registration;
    }

    @Bean
    public ServletContextInitializer servletContextInitializer() {
        return servletContext -> {
            servletContext.setInitParameter("com.sun.faces.forceLoadConfiguration", Boolean.TRUE.toString());
            servletContext.setInitParameter("primefaces.THEME", "bootstrap");
            servletContext.setInitParameter("primefaces.CLIENT_SIDE_VALIDATION", Boolean.TRUE.toString());
            servletContext.setInitParameter("javax.faces.FACELETS_SKIP_COMMENTS", Boolean.TRUE.toString());
            servletContext.setInitParameter("primefaces.FONT_AWESOME", Boolean.TRUE.toString());
            servletContext.setInitParameter("primefaces.UPLOADER", "commons");
            setupPushServlet(new PushServlet(), servletContext);
        };
    }

    private void setupPushServlet(final PushServlet servlet, final ServletContext servletContext) {
        final ServletRegistration.Dynamic pushServlet = servletContext.addServlet("Push Servlet", servlet);
        pushServlet.addMapping("/primepush/*");
        pushServlet.setLoadOnStartup(0);
        pushServlet.setAsyncSupported(true);
    }
My CounterView.java

Code: Select all

@Component
public class CounterView implements Serializable {

    private volatile int count;

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }

    public void increment() {
        count++;
        EventBus eventBus = EventBusFactory.getDefault().eventBus();
        eventBus.publish("/counter", String.valueOf(count));
    }
}
My CounterResource.java

Code: Select all

@Component
@PushEndpoint("/counter")
public class CounterResource {

    private Integer test = 1;

    @OnMessage(encoders = {JSONEncoder.class})
    public String onMessage(String count) {
        return count;
    }

}

smithh032772
Posts: 6144
Joined: 10 Sep 2011, 21:10

19 Oct 2015, 20:53

michau wrote:I would like to implement /counter showcase but still without any success. Application inform me via console that
No Annotated class using @PushEndpoint found. Push will not work.
i would really appreciate if you could help me, and tell me why PushServlet doesn't detect @PushEndpoint annotation?

My CounterResource.java

Code: Select all

@Component
@PushEndpoint("/counter")
public class CounterResource {

    private Integer test = 1;

    @OnMessage(encoders = {JSONEncoder.class})
    public String onMessage(String count) {
        return count;
    }

}
Please refer to the code above in the showcase and PrimeFaces user guide. You are missing PrimeFaces Push's @Singleton annotation.
Howard

PrimeFaces 6.0, Extensions 6.0.0, Push (Atmosphere 2.4.0)
TomEE+ 1.7.4 (Tomcat 7.0.68), MyFaces Core 2.2.9, JDK8
JUEL 2.2.7 | OmniFaces | EclipseLink-JPA/Derby | Chrome

Java EE 6 Tutorial|NetBeans|Google|Stackoverflow|PrimeFaces|Apache

Post Reply

Return to “PrimeFaces”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 93 guests