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
i would really appreciate if you could help me, and tell me why PushServlet doesn't detect @PushEndpoint annotation?No Annotated class using @PushEndpoint found. Push will not work.
Used dependencies :
Code: Select all
* Spring boot 1.3.0.M5
* Primefaces 5.2
* Atmosphere-Runtime 2.3.5
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);
}
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));
}
}
Code: Select all
@Component
@PushEndpoint("/counter")
public class CounterResource {
private Integer test = 1;
@OnMessage(encoders = {JSONEncoder.class})
public String onMessage(String count) {
return count;
}
}