PFPush 5.0 in Tomcat

UI Components for JSF
Post Reply
Santi
Posts: 1
Joined: 30 May 2014, 15:06

30 May 2014, 15:41

Hi,
I'm trying to migrate a simple app from PF Push 4.0 to 5.0 versión, I changed the source code and now I have a eventBus and created a class @PushEndpoint annotated but in the server startup I found the following error:

Code: Select all

PushServlet.configureFramework ERROR - No Annotated class using @PushEndpoint found. Push will not work.
I am looking for information about this but can not find anything, Any idea why not find the class?

The loaded versions in pom.xml are:
  • <tomcat.version>7.0.52</tomcat.version>
    <javax.servlet.version>3.1.0</javax.servlet.version>
    <junit.version>4.11</junit.version>
    <faces.version>2.2.2</faces.version>
    <primefaces.version>5.0</primefaces.version>
    <themes.version>1.0.10</themes.version>
    <atmosphere.version>2.1.3</atmosphere.version>
    <springframework.version>4.0.2.RELEASE</springframework.version>
    <slf4j.version>1.7.6</slf4j.version>
    <log4j.version>2.0-rc1</log4j.version>
    <cxf.version>2.7.10</cxf.version>
    <javaxinject.version>1</javaxinject.version>
web.xml

Code: Select all

	<servlet>
		<servlet-name>Faces Servlet</servlet-name>
		<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>

	<servlet>
		<servlet-name>Push Servlet</servlet-name> 
		<servlet-class>org.primefaces.push.PushServlet</servlet-class> 
		<init-param>
			<param-name>org.atmosphere.cpr.broadcasterCacheClass</param-name> 
			<param-value>org.atmosphere.cache.HeaderBroadcasterCache</param-value> 
		</init-param>
		<load-on-startup>1</load-on-startup>
		<async-supported>true</async-supported>
	</servlet>


	<servlet-mapping>
		<servlet-name>Faces Servlet</servlet-name>
		<url-pattern>*.xhtml</url-pattern>
	</servlet-mapping>
   
	<servlet-mapping>
		<servlet-name>Push Servlet</servlet-name> 
		<url-pattern>/primepush/*</url-pattern> 
	</servlet-mapping>
  
app-context.xml

Code: Select all

	<context:component-scan base-package="com.app" annotation-config="true" />
My annotated class:

Code: Select all

package com.app.endpoints;

import org.atmosphere.config.service.Singleton;
import org.primefaces.push.annotation.OnMessage;
import org.primefaces.push.annotation.PushEndpoint;
import org.primefaces.push.impl.JSONEncoder;

 
@Singleton
@PushEndpoint("/IncUpdate")
public class IncidentResource {
	@OnMessage(encoders = {JSONEncoder.class})
	public String onMessage(String str) { return str; }
	
}
It's very simple, one programmed tasks check conditions and send a message by the channel /IncUpdate, in the 4.0 versión the old code works Ok but in 5.0 version with this changes found the error. Any ideas?

Regards

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

02 Jun 2014, 11:21

have you tried something more simple by looking at primefaces 5.0 push showcase source code, and doing that first, and making your source code as much as possible like showcase, and then modify a little here and a little there to meet your requirements?

also, my web.xml is

Code: Select all

    <servlet>
        <servlet-name>Push Servlet</servlet-name>
        <servlet-class>org.primefaces.push.PushServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
        <init-param>
            <param-name>org.atmosphere.cpr.broadcasterCacheClass</param-name>
            <param-value>org.atmosphere.cache.UUIDBroadcasterCache</param-value>
        </init-param>
        <async-supported>true</async-supported>
    </servlet>
    <servlet-mapping>
        <servlet-name>Push Servlet</servlet-name>
        <url-pattern>/primepush/*</url-pattern>
    </servlet-mapping>
last but not least, i recognize you have the following dependency

Code: Select all

<springframework.version>4.0.2.RELEASE</springframework.version>
you may want to search this forum for others that have spring dependency.
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

tprather
Posts: 1
Joined: 26 Aug 2013, 18:05

06 Jun 2014, 19:27

I had the same problem with my PushEndpoint not being found and was able to work around it by adding a couple of init-parm definitions to web.xml:

Code: Select all

  <servlet>
	<servlet-name>Push Servlet</servlet-name>
	<servlet-class>org.primefaces.push.PushServlet</servlet-class>
	<init-param>
            <param-name>org.atmosphere.cpr.broadcasterCacheClass</param-name>
            <param-value>org.atmosphere.cache.UUIDBroadcasterCache</param-value>
	</init-param>
	<init-param>
            <param-name>org.atmosphere.annotation.packages</param-name>
            <param-value>org.primefaces.push</param-value>
	</init-param>
	<init-param>
            <param-name>org.atmosphere.cpr.packages</param-name>
            <param-value>the_package_containing_my_PushEndpoint_class</param-value>
	</init-param>
        <async-supported>true</async-supported>
  </servlet>

Post Reply

Return to “PrimeFaces”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 11 guests